public class WllRequest
{
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true; //总是接受
}
public static string HttpRequest(string url)
{
try
{
HttpWebRequest httpRequest;
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.ProtocolVersion = HttpVersion.Version10;
}
else
httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
HttpWebResponse httpResp = (HttpWebResponse)httpRequest.GetResponse();
Stream responseStream = httpResp.GetResponseStream(); //获得响应的流
StringBuilder strBuff = new StringBuilder();
using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8))
{
char[] cbuffer = new char[256];
int byteRead = responseStreamReader.Read(cbuffer, 0, 256);
while (byteRead != 0)
{
string strResp = new string(cbuffer, 0, byteRead);
strBuff.Append(strResp);
byteRead = responseStreamReader.Read(cbuffer, 0, 256);
}
}
return strBuff.ToString();
}
catch(Exception ex)
{
//如何需要记录错误日志可在这里记录 或抛出异常
return null;
}
}
/// <summary>
/// Post请求
/// </summary>
/// <param name="url">请求的地址</param>
/// <param name="ua">用户代理</param>
/// <param name="param">请求的参数 => json字符串</param>
/// <returns>返回json字符串</returns>
public static string Post(string url,string ua, string param)
{
try{
HttpWebRequest httpRequest;
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.ProtocolVersion = HttpVersion.Version10;
}
else
httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.UserAgent = ua;
httpRequest.Method = "POST";
httpRequest.ContentType = "application/json;charset=UTF-8";
string paraUrlCoded = param;
byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
httpRequest.ContentLength = payload.Length;
using (Stream wStream = httpRequest.GetRequestStream())
{
wStream.Write(payload, 0, payload.Length);
}
HttpWebResponse response = (System.Net.HttpWebResponse)httpRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StringBuilder strBuff = new StringBuilder();
using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8))
{
char[] cbuffer = new char[256];
int byteRead = responseStreamReader.Read(cbuffer, 0, 256);
while (byteRead != 0)
{
string strResp = new string(cbuffer, 0, byteRead);
strBuff.Append(strResp);
byteRead = responseStreamReader.Read(cbuffer, 0, 256);
}
}
return strBuff.ToString();
}
catch(Exception ex){
//如何需要记录错误日志可在这里记录 或抛出异常
return null;
}
}
/// <summary>
/// GET请求
/// </summary>
/// <param name="url">请求的地址</param>
/// <param name="ua">用户代理</param>
/// <param name="param">请求的参数 => json字符串</param>
/// <returns>返回json字符串</returns>
public static string Get(string url, string ua, string param)
{
try{
HttpWebRequest httpRequest;
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.ProtocolVersion = HttpVersion.Version10;
}
else
httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.UserAgent = ua;
httpRequest.ContentType = "application/json;charset=UTF-8";
string paraUrlCoded = param;
byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
httpRequest.ContentLength = payload.Length;
using (Stream wStream = httpRequest.GetRequestStream())
{
wStream.Write(payload, 0, payload.Length);
}
HttpWebResponse response = (System.Net.HttpWebResponse)httpRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StringBuilder strBuff = new StringBuilder();
using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8))
{
char[] cbuffer = new char[256];
int byteRead = responseStreamReader.Read(cbuffer, 0, 256);
while (byteRead != 0)
{
string strResp = new string(cbuffer, 0, byteRead);
strBuff.Append(strResp);
byteRead = responseStreamReader.Read(cbuffer, 0, 256);
}
}
return strBuff.ToString();
}
catch(Exception ex){
//如何需要记录错误日志可在这里记录 或抛出异常
return null;
}
}
}
C# 后台发送http请求
最新推荐文章于 2024-05-15 14:38:46 发布