Files
T-DAS/Common/HttpHelper.cs

161 lines
5.4 KiB
C#
Raw Normal View History

2023-01-13 15:30:20 +08:00
using System.Text;
using System.Net;
using System.IO;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
namespace Epost.Common
{
#region HttP
/// <summary>
/// HttP
/// </summary>
public class HttpHelper
{
private static object lockobj = new object();
#region Http Post请求-
/// <summary>
/// 模拟Http Post请求
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public static string HttpPost(string Url, string postDataStr = "")
{
try
{
HttpClient httpClient = new HttpClient();
HttpContent httpContent = new StringContent(postDataStr);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var events = httpClient.PostAsync(Url, httpContent).Result;
// var result = events.Content.ReadAsStringAsync().Result;
httpClient.Dispose();
httpContent.Dispose();
events.Dispose();
return events.StatusCode.ToString();
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("post请求" + ex.Message);
return "Fail";
}
}
#endregion
#region Http Post请求
/// <summary>
/// 模拟Http Post请求
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public string HttpPost_Old(string Url, string postDataStr = "")
{
try
{
ServicePointManager.Expect100Continue = false;
byte[] byteArray = Encoding.UTF8.GetBytes(postDataStr);
CookieContainer cookie = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
// request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "application/json";
request.ContentLength = byteArray.Length;
request.CookieContainer = cookie;
Stream myRequestStream = request.GetRequestStream();
myRequestStream.Write(byteArray, 0, byteArray.Length);
myRequestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
catch (Exception e)
{
LogHelper.WriteLogInfo("post失败" + e.Message);
return "Fail";
}
}
#endregion
#region Http Get请求
/// <summary>
/// 模拟Http Get请求
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public static string HttpGet(string Url, string postDataStr)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
#endregion
/// <summary>
/// HTTP GET方式请求数据.
/// </summary>
/// <param name="url">URL.</param>
/// <returns></returns>
public static string HttpGet(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/json";
request.Accept = "*/*";
request.Timeout = 15000;
request.AllowAutoRedirect = false;
WebResponse response = null;
string responseStr = null;
try
{
response = request.GetResponse();
if (response != null)
{
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
responseStr = reader.ReadToEnd();
reader.Close();
}
}
catch (Exception)
{
throw;
}
finally
{
request = null;
response = null;
}
return responseStr;
}
}
#endregion
}