后台HttpRequest访问https接口的方法
2017-03-23 09:44
211 查看
因为项目需要,写了一个后台调用https接口的方法,记录下来,以备后用:
1. 封装的访问方法
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
namespace Test
{
public class HttpsRequest
{
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
public static string PostHttpsRequest(string url, Dictionary<string, string> parameters)
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
var request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = true;
request.Timeout = 1000 * 60;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Referer = url;
if (!(parameters == null || parameters.Count == 0))
{
var param = "";
foreach (var key in parameters.Keys)
{
param += "&" + key + "=" + parameters[key];
}
using (var sw = new StreamWriter(request.GetRequestStream()))
{
sw.Write(param.Trim('&'));
sw.Close();
}
}
var res = request.GetResponse() as HttpWebResponse;
var st = res.GetResponseStream();
var sr = new StreamReader(st);
return sr.ReadToEnd();
}
}
}
2. 调用的例子
var parameters = new Dictionary<string, string>();
parameters.Add("aa", "ttt");
parameters.Add("bb", "tt");
parameters.Add("cc", "1");
parameters.Add("dd", "2");
var res = HttpsRequest.PostHttpsRequest("https://www.xxxxx.com/xxx/xxx", parameters);
1. 封装的访问方法
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
namespace Test
{
public class HttpsRequest
{
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
public static string PostHttpsRequest(string url, Dictionary<string, string> parameters)
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
var request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = true;
request.Timeout = 1000 * 60;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Referer = url;
if (!(parameters == null || parameters.Count == 0))
{
var param = "";
foreach (var key in parameters.Keys)
{
param += "&" + key + "=" + parameters[key];
}
using (var sw = new StreamWriter(request.GetRequestStream()))
{
sw.Write(param.Trim('&'));
sw.Close();
}
}
var res = request.GetResponse() as HttpWebResponse;
var st = res.GetResponseStream();
var sr = new StreamReader(st);
return sr.ReadToEnd();
}
}
}
2. 调用的例子
var parameters = new Dictionary<string, string>();
parameters.Add("aa", "ttt");
parameters.Add("bb", "tt");
parameters.Add("cc", "1");
parameters.Add("dd", "2");
var res = HttpsRequest.PostHttpsRequest("https://www.xxxxx.com/xxx/xxx", parameters);
相关文章推荐
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- C# httpwebrequest访问HTTPS错误处理方法
- 火狐浏览器httprequest插件添加和使用方法(适用于前后台分离,测试后台接口)
- ASIHTTPRequest访问https[error-9844]解决方法
- .net使用Javascript XMLHttpRequest在前台调用后台方法
- HttpServletRequest和HttpServletResponse接口的方法
- 使用 HttpWebRequest的psot方式传参数调用接口方法
- tomcat同时使用http和https访问的配置方法
- ASIHTTPRequest下访问https
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- HttpContext.Current.Request.Files后台取不到值的解决方法
- sharepoint form认证下跨域访问其他基本认证的系统(客户端用js的xmlhttprequest)的方法
- java程序访问http,或https最简单的方法
- Nginx出现The plain HTTP request was sent to HTTPS port问题解决方法
- jquery的ajax post 方法传值到后台,无法通过HttpServletRequest得到
- HttpServletRequest接口的getSession方法
- HttpRequest访问Https带有证书并使用WSDL文档生成代理类方案(2)
- HttpContext.Current.Request.Files后台取不到值的解决方法
- C#利用HttpWebRequest后台请求,出现:基础连接已经关闭: 接收时发生错误;【解决方法之一】