为了获取微信的 AccessToken 代码如下:
public static string WebRequestPostOrGet(string sUrl, string sParam) {
byte[] bt = System.Text.Encoding.UTF8.GetBytes(sParam);
Uri uriurl = new Uri(sUrl);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uriurl);
req.Method = "Post";
req.Timeout = 120 * 1000;
req.ContentType = "application/x-www-form-urlencoded;"; req.ContentLength = bt.Length;
try
{
using (Stream reqStream = req.GetRequestStream()) //代码执行到这报“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系”
{
reqStream.Write(bt, 0, bt.Length);
reqStream.Flush();
}
}
catch (Exception e)
{
}
try
{
using (WebResponse res = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
Stream resStream = res.GetResponseStream();
StreamReader resStreamReader = new StreamReader(resStream, System.Text.Encoding.UTF8);
string resLine;
System.Text.StringBuilder resStringBuilder = new System.Text.StringBuilder();
while ((resLine = resStreamReader.ReadLine()) != null) {
resStringBuilder.Append(resLine + System.Environment.NewLine);
}
resStream.Close();
resStreamReader.Close();
return resStringBuilder.ToString();
}
}
catch (Exception ex)
{
return ex.Message;//url错误时候回报错
}
}
结果出错 提示“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系”。
请问如何解决此问题,谢谢!
ServicePointManager.ServerCertificateValidationCallback=(s,cert,chain,err)=>true;
这个在现有的代码上直接改吗?
@lwr: 对,找个地方注册一次就可以了。
@Daniel Cai: 找个地方注册一次就可以了?这个还没有注册过,能再详细点?
@Daniel Cai: 这个post到微信服务器端,不需要注册吧?看样子有点麻烦。。。
@lwr: 我的意思是这个代码执行一次就可以了。