Skip to content

Class HttpHelpers

Namespace: Tool.Utils
Assembly: Tool.Net.dll

提供部分的API请求访问类 (内置调用接口 替换为 HttpClient) 注意此类下所有函数调用皆无异常抛出,但为了方便问题排查,增加异常相关日志

csharp
public class HttpHelpers

Inheritance

objectHttpHelpers

Inherited Members

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

Extension Methods

ObjectExtension.Add<T>(object, object, object), ObjectExtension.CopyEntity(object, object, params string[]), ObjectExtension.EntityToJson(object), ObjectExtension.EntityToJson(object, bool), ObjectExtension.EntityToJson(object, bool, string), DictionaryExtension.GetDictionary(object), TypeExtension.GetFieldKey(object, string, out bool), TypeExtension.GetFieldKey<T>(object, string, out bool), TypeExtension.GetFieldKey(object, Type, string, out bool), ObjectExtension.GetIntPtr(object), ObjectExtension.GetIntPtrInt(object), TypeExtension.GetPropertieFind(object, string, bool), TypeExtension.GetProperties(object), TypeExtension.GetPropertyKey(object, string, out bool), TypeExtension.GetPropertyKey<T>(object, string, out bool), TypeExtension.GetPropertyKey(object, Type, string, out bool), TypeExtension.GetValue(object, PropertyDescriptor), TypeExtension.GetValue(object, string, bool), TypeExtension.GetValue(object, string), ObjectExtension.Read<T>(object, object, int, int), ObjectExtension.Read<T>(object, int, object, int, int), DictionaryExtension.SetDictionary(object, IDictionary<string, object>), TypeExtension.SetFieldKey(object, string, object), TypeExtension.SetFieldKey<T>(object, string, object), TypeExtension.SetFieldKey(object, Type, string, object), TypeExtension.SetPropertyKey(object, string, object), TypeExtension.SetPropertyKey<T>(object, string, object), TypeExtension.SetPropertyKey(object, Type, string, object), TypeExtension.SetValue(object, PropertyDescriptor, object), TypeExtension.SetValue(object, string, object, bool), TypeExtension.SetValue(object, string, object), ObjectExtension.ToBase64String(object), ObjectExtension.ToBytes(object), ObjectExtension.ToBytes(object, out Type), DictionaryExtension.ToDictionary(object), DictionaryExtension.ToDictionary<T>(object), DictionaryExtension.ToIDictionary(object), DictionaryExtension.ToIDictionary<T>(object), ObjectExtension.ToJson(object), ObjectExtension.ToJson(object, JsonSerializerOptions), ObjectExtension.ToJsonWeb(object), ObjectExtension.ToJsonWeb(object, Action<JsonSerializerOptions>), ObjectExtension.ToTryVar<T>(object, T), ObjectExtension.ToVar<T>(object), ObjectExtension.ToVar(object, Type, bool), ObjectExtension.ToVar(object, string), ObjectExtension.ToXml(object)

Remarks

代码由逆血提供支持

Fields

LogFilePath

相关请求异常日志输出位置

csharp
public const string LogFilePath = "Log/HttpHelpers/"

Field Value

string

Properties

DefaultEncoding

默认编码格式

csharp
public static Encoding DefaultEncoding { get; set; }

Property Value

Encoding

Timeout

等待毫秒

csharp
public static double Timeout { get; set; }

Property Value

double

Exceptions

ArgumentOutOfRangeException

指定的超时值小于或等于零,并且不是系统超时值。穿线。超时。无穷大跨度。

InvalidOperationException

已在当前实例上启动操作。

ObjectDisposedException

当前实例已被释放。

Methods

CreateHttpRequestMessage(HttpMethod, string)

获取可用的连接

csharp
public static HttpRequestMessage CreateHttpRequestMessage(HttpMethod method, string url)

Parameters

method HttpMethod

url string

Returns

HttpRequestMessage

~HttpHelpers()

自动回收

csharp
protected ~HttpHelpers()

FormatData(string)

高效解析http表单类文本

csharp
public static IDictionary<string, string> FormatData(string query)

Parameters

query string

待解析的http表单值

Returns

IDictionary<string, string>

Get(string, Action<HttpRequestHeaders>)

GET 方式获取响应流

csharp
public static Stream Get(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

Stream

GetAsync(string, Action<HttpRequestHeaders>)

GET 方式获取响应流(异步获取)

csharp
public static Task<Stream> GetAsync(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

Task<Stream>

GetJson<T>(string, Action<HttpRequestHeaders>)

GET 方式获取响应流 返回实体

csharp
public static T GetJson<T>(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

T

Type Parameters

T

GetJsonAsync<T>(string, Action<HttpRequestHeaders>)

GET 方式获取响应流 返回实体 (异步获取)

csharp
public static Task<T> GetJsonAsync<T>(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

Task<T>

Type Parameters

T

GetString(string, Action<HttpRequestHeaders>)

GET 方式获取响应流 返回字符串

csharp
public static string GetString(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

string

GetStringAsync(string, Action<HttpRequestHeaders>)

GET 方式获取响应流 返回字符串 (异步获取)

csharp
public static Task<string> GetStringAsync(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

Task<string>

HeadHttpCode(string, Action<HttpRequestHeaders>)

HEAD 方式获取响应的状态

csharp
public static HttpStatusCode HeadHttpCode(string url, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

onheaders Action<HttpRequestHeaders>

Returns

HttpStatusCode

Post(string, IEnumerable<KeyValuePair<string, string>>, Action<HttpRequestHeaders>)

POST 方式获取响应流

csharp
public static Stream Post(string url, IEnumerable<KeyValuePair<string, string>> data, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IEnumerable<KeyValuePair<string, string>>

onheaders Action<HttpRequestHeaders>

Returns

Stream

Post(string, IDictionary<string, string>, Action<HttpRequestHeaders>)

POST 方式获取响应流

csharp
public static Stream Post(string url, IDictionary<string, string> data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IDictionary<string, string>

onheaders Action<HttpRequestHeaders>

Returns

Stream

PostAsync(string, IEnumerable<KeyValuePair<string, string>>, Action<HttpRequestHeaders>)

POST 方式获取响应流(异步获取)

csharp
public static Task<Stream> PostAsync(string url, IEnumerable<KeyValuePair<string, string>> data, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IEnumerable<KeyValuePair<string, string>>

onheaders Action<HttpRequestHeaders>

Returns

Task<Stream>

PostAsync(string, IDictionary<string, string>, Action<HttpRequestHeaders>)

POST 方式获取响应流(异步获取)

csharp
public static Task<Stream> PostAsync(string url, IDictionary<string, string> data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IDictionary<string, string>

onheaders Action<HttpRequestHeaders>

Returns

Task<Stream>

PostJson<T>(string, string, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回实体

csharp
public static T PostJson<T>(string url, string data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data string

onheaders Action<HttpRequestHeaders>

Returns

T

Type Parameters

T

PostJson<T>(string, IDictionary<string, string>, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回实体

csharp
public static T PostJson<T>(string url, IDictionary<string, string> data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IDictionary<string, string>

onheaders Action<HttpRequestHeaders>

Returns

T

Type Parameters

T

PostJsonAsync<T>(string, string, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回实体 (异步获取)

csharp
public static Task<T> PostJsonAsync<T>(string url, string data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data string

onheaders Action<HttpRequestHeaders>

Returns

Task<T>

Type Parameters

T

PostJsonAsync<T>(string, IDictionary<string, string>, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回实体 (异步获取)

csharp
public static Task<T> PostJsonAsync<T>(string url, IDictionary<string, string> data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IDictionary<string, string>

onheaders Action<HttpRequestHeaders>

Returns

Task<T>

Type Parameters

T

PostString(string, string, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回字符串

csharp
public static string PostString(string url, string data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data string

字符串拼接的数据

onheaders Action<HttpRequestHeaders>

Returns

string

PostString(string, IDictionary<string, string>, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回字符串

csharp
public static string PostString(string url, IDictionary<string, string> data, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IDictionary<string, string>

onheaders Action<HttpRequestHeaders>

Returns

string

PostStringAsync(string, string, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回字符串 (异步获取)

csharp
public static Task<string> PostStringAsync(string url, string data = null, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data string

onheaders Action<HttpRequestHeaders>

Returns

Task<string>

PostStringAsync(string, IDictionary<string, string>, Action<HttpRequestHeaders>)

POST 方式获取响应流 返回字符串 (异步获取)

csharp
public static Task<string> PostStringAsync(string url, IDictionary<string, string> data, Action<HttpRequestHeaders> onheaders = null)

Parameters

url string

data IDictionary<string, string>

onheaders Action<HttpRequestHeaders>

Returns

Task<string>

QueryString(IDictionary<string, string>)

根据字典高效组装成以转义的字符串

csharp
public static string QueryString(IDictionary<string, string> data)

Parameters

data IDictionary<string, string>

字典对象

Returns

string

Send(HttpRequestMessage)

获取请求结果

csharp
public static HttpResponseMessage Send(HttpRequestMessage requestMessage)

Parameters

requestMessage HttpRequestMessage

请求信息

Returns

HttpResponseMessage

SendAsync(HttpRequestMessage)

异步获取请求结果

csharp
public static Task<HttpResponseMessage> SendAsync(HttpRequestMessage requestMessage)

Parameters

requestMessage HttpRequestMessage

请求信息

Returns

Task<HttpResponseMessage>

基于Apache-2.0协议开源