Files
T-DAS/Common/HttpHelper.cs
2023-01-13 15:30:20 +08:00

161 lines
5.4 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.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
}