178 lines
7.3 KiB
C#
178 lines
7.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.IO.Compression;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web;
|
|
|
|
namespace KJD_Web.Utils
|
|
{
|
|
public class HttpUtils
|
|
{
|
|
public static string WxApiPostResponse(string _url, string _data, string referer)
|
|
{
|
|
HttpWebResponse response = null;
|
|
string result;
|
|
try
|
|
{
|
|
string url = _url;
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
|
|
|
request.KeepAlive = true;
|
|
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
|
|
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36";
|
|
request.ContentType = "application/json";
|
|
request.Accept = "*/*";
|
|
request.Referer = referer;
|
|
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
|
|
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
|
|
|
request.Method = "POST";
|
|
request.ServicePoint.Expect100Continue = false;
|
|
|
|
string body = _data;
|
|
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
|
|
request.ContentLength = postBytes.Length;
|
|
Stream stream = request.GetRequestStream();
|
|
stream.Write(postBytes, 0, postBytes.Length);
|
|
stream.Close();
|
|
|
|
response = (HttpWebResponse)request.GetResponse();
|
|
}
|
|
catch (WebException ex)
|
|
{
|
|
if (ex.Status == WebExceptionStatus.ProtocolError)
|
|
{
|
|
response = (HttpWebResponse)ex.Response;
|
|
result = ReadResponse(response);
|
|
return result;
|
|
}
|
|
else return ex.Message;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
if (response != null) response.Close();
|
|
return e.Message;
|
|
}
|
|
result = ReadResponse(response);
|
|
return result;
|
|
}
|
|
|
|
public static string WxApiGetResponse(string _url, string referer)
|
|
{
|
|
HttpWebResponse response = null;
|
|
string result;
|
|
try
|
|
{
|
|
string url = _url;
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
|
|
|
request.KeepAlive = true;
|
|
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
|
|
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36";
|
|
request.ContentType = "application/json";
|
|
request.Accept = "*/*";
|
|
request.Referer = referer;
|
|
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
|
|
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
|
|
|
response = (HttpWebResponse)request.GetResponse();
|
|
}
|
|
catch (WebException ex)
|
|
{
|
|
if (ex.Status == WebExceptionStatus.ProtocolError)
|
|
{
|
|
response = (HttpWebResponse)ex.Response;
|
|
result = ReadResponse(response);
|
|
return result;
|
|
}
|
|
else return ex.Message;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
if (response != null) response.Close();
|
|
return e.Message;
|
|
}
|
|
result = ReadResponse(response);
|
|
return result;
|
|
}
|
|
|
|
public static string e57GetResponse(string _url, string referer)
|
|
{
|
|
HttpWebResponse response = null;
|
|
string result;
|
|
try
|
|
{
|
|
string url = _url;
|
|
|
|
HttpWebRequest request;
|
|
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
|
|
ServicePointManager.SecurityProtocol =
|
|
ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
|
|
request = WebRequest.Create(url) as HttpWebRequest;
|
|
request.ProtocolVersion = HttpVersion.Version10;
|
|
}
|
|
else
|
|
request = (HttpWebRequest)WebRequest.Create(url);
|
|
|
|
request.KeepAlive = true;
|
|
request.Headers.Add("sec-ch-ua", @"""Not(A:Brand"";v=""8"", ""Chromium"";v=""144"", ""Google Chrome"";v=""144""");
|
|
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
|
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
|
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
|
|
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36";
|
|
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
|
|
request.Headers.Add("Sec-Fetch-Site", @"none");
|
|
request.Headers.Add("Sec-Fetch-Mode", @"navigate");
|
|
request.Headers.Add("Sec-Fetch-User", @"?1");
|
|
request.Headers.Add("Sec-Fetch-Dest", @"document");
|
|
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
|
|
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
|
|
|
|
response = (HttpWebResponse)request.GetResponse();
|
|
}
|
|
catch (WebException ex)
|
|
{
|
|
if (ex.Status == WebExceptionStatus.ProtocolError)
|
|
{
|
|
response = (HttpWebResponse)ex.Response;
|
|
result = ReadResponse(response);
|
|
return result;
|
|
}
|
|
else return ex.Message;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
if (response != null) response.Close();
|
|
return e.Message;
|
|
}
|
|
result = ReadResponse(response);
|
|
return result;
|
|
}
|
|
|
|
public static string ReadResponse(HttpWebResponse response)
|
|
{
|
|
using (Stream responseStream = response.GetResponseStream())
|
|
{
|
|
Stream streamToRead = responseStream;
|
|
if (response.ContentEncoding.ToLower().Contains("gzip"))
|
|
{
|
|
streamToRead = new GZipStream(streamToRead, CompressionMode.Decompress);
|
|
}
|
|
else if (response.ContentEncoding.ToLower().Contains("deflate"))
|
|
{
|
|
streamToRead = new DeflateStream(streamToRead, CompressionMode.Decompress);
|
|
}
|
|
|
|
using (StreamReader streamReader = new StreamReader(streamToRead, Encoding.UTF8))
|
|
{
|
|
return streamReader.ReadToEnd();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |