110,571
社区成员
发帖
与我相关
我的任务
分享
//HTTPS请求
public static bool GetHttpsResponse(string url, string method, string content, string cerPath, out string response, out string errorMsg)
{
errorMsg = "";
response = "";
//方法返回的结果,当调用接口成功后返回
bool result = true;
//判断是参数是否合法
if (string.IsNullOrEmpty(url) == true)
{
result = false;
errorMsg = "url 不能为空";
}
//发送的内容不能为空
if (string.IsNullOrEmpty(content) == true)
{
result = false;
errorMsg = "content 不能为空";
}
if (File.Exists(cerPath) == false)
{
result = false;
errorMsg = "“" + cerPath + "” 指定的证书不存在";
}
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//User-AgentHTTP标头的值
req.UserAgent = "Client Cert Sample";
req.Method = method.ToString();
req.Timeout = 1000 * 10;//超时间10秒;
req.KeepAlive = true;
req.ContentType = "application/x-www-form-urlencoded";
//创建证书文件
X509Certificate objx509 = new X509Certificate(cerPath);
//添加证书到请求里
req.ClientCertificates.Add(objx509);
byte[] contentBytes = Encoding.GetEncoding("UTF-8").GetBytes(content);
req.ContentLength = contentBytes.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(contentBytes, 0, contentBytes.Length); //添加参数到请求
reqStream.Close();
HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
StreamReader smr = new StreamReader(rep.GetResponseStream());
response = smr.ReadToEnd();
}
catch (Exception ex)
{
errorMsg = ex.Message;
result = false;
}
return result;
}