XP环境下的网络证书问题

项目过程中,由于是收银系统需要从服务器获取支付二维码,会产生SSL连接的问题,在win7、win10上都没有问题,放到WIN XP上出现了The underlying connection was closed:could not establish trust,

经过查阅相关资料发现是证书问题,采用了最简单的快捷的禁止证书验证,代码如下

//将客户端访问的证书修改为无证书
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

代码放置的位置为进行HTTPwebRequest请求时,完全代码如下

 /// <summary>
/// 建立连接
/// </summary>
/// <param name="sendmenssage">发送字符串
/// <param name="message"></param>
/// <returns></returns>
public bool HttpConn(string sendmenssage, out string message)
{
try
{
//将客户端访问的证书修改为无证书
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; request = (HttpWebRequest)WebRequest.Create(Common.Const.QueryUrl);//原因是这 每次都是一个新的request 上次abort不影响
request.Method = "POST";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.1124)";
// request.ContentType = "application/octet-stream";//get
request.ContentType = "application/x-www-form-urlencoded;";//post
// request.Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
request.Accept = "*/*";
request.Timeout = * ;
request.AllowAutoRedirect = true;
StringBuilder data = new StringBuilder();
data.Append(sendmenssage);
// MyMsgBox.Show("send:" + sendmenssage+"\n "+this.GetHashCode());
Byte[] bytes = System.Text.Encoding.Default.GetBytes(data.ToString());
request.ContentLength = bytes.Length;
//AsyncCallback ac1 = null;
//ac1 = new AsyncCallback((IAsyncResult r) => { Stream writer = request.EndGetRequestStream(r); writer.Write(bytes, 0, bytes.Length); writer.Close(); }); //request.BeginGetRequestStream(ac1, null);
using (Stream writer = request.GetRequestStream())
{//同样的请求会卡在这
writer.Write(bytes, , bytes.Length);
writer.Close();
}
HttpWebResponse response;
// 获得响应流
using (response = (HttpWebResponse)request.GetResponse())
{
Stream s;
s = response.GetResponseStream();
StreamReader reader = new StreamReader(s);
StringBuilder sb = new StringBuilder();
string tmp = reader.ReadLine();
while (tmp != null)
{
sb.Append(tmp);
tmp = reader.ReadLine();
}
reader.Close();
message = sb.ToString();
}
request.Abort();
return true;
}
catch (Exception e)
{
Log.WriteLog("服务器连接异常:" + e.Message);
message = "";
return false;
}
}
上一篇:Hadoop MapReduce例子-新版API多表连接Join之模仿订单配货


下一篇:Hadoop MapReduce执行过程详解(带hadoop例子)