2025-03-28 09:49:56 +08:00

70 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
namespace ZJZCGCMemberClient.Method
{
/// <summary>
/// 通用的HTTP请求类
/// </summary>
public class HttpUtil
{
#region -> HTTP报文请求
/// <summary>
/// HTTP报文请求
/// </summary>
/// <param name="postDataStr">请求参数</param>
/// <param name="RequestUrl">请求url</param>
/// <param name="ContentType">资源的媒体类型默认application/x-www-form-urlencoded</param>
/// <param name="timeout">超时时间TCP连接建立的时间和整个请求完成的时间超出了设置的时间就抛出异常程序中断</param>
/// <returns></returns>
public static string HttpUrlPost(string postDataStr, string RequestUrl,
string ContentType = "application/x-www-form-urlencoded", int timeout = 0)
{
try
{
CookieContainer cookieContainer = new CookieContainer();
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postDataStr);
// 设置提交的相关参数
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
HttpWebRequest request = WebRequest.Create(RequestUrl) as HttpWebRequest;
if (timeout > 0)
{
request.Timeout = timeout * 1000;
}
request.Method = "POST";
request.KeepAlive = false;
request.ContentType = ContentType;
request.CookieContainer = cookieContainer;
request.ContentLength = postBytes.Length;
using (System.IO.Stream reqStream = request.GetRequestStream())
{
reqStream.Write(postBytes, 0, postBytes.Length);
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
//在这里对接收到的页面内容进行处理
//直到request.GetResponse()程序才开始向目标网页发送post请求
System.IO.Stream responseStream = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, System.Text.Encoding.GetEncoding("utf-8"));
string val = reader.ReadToEnd();
return val;
}
}
catch (Exception ex)
{
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex, "Post请求", "Post请求" + postDataStr + "" + RequestUrl);
return ex.ToString();
}
}
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
#endregion
}
}