HttpClient _client;
public async Task<Result<T>> Get<T>(string url)
_client.DefaultRequestHeaders.Add("Authorization", GetAccessTokenHeaderByCache());
var response = await _client.GetAsync(url);
response.EnsureSuccessStatusCode();
res = await response.Content.ReadAsStringAsync();
stream = await response.Content.ReadAsStreamAsync();
_client.DefaultRequestHeaders.Remove("Authorization");
Dictionary<string, string> headers = new Dictionary<string, string>();
response.Headers.ToList().ForEach(a => headers.Add(a.Key, a.Value.Count() > 0 ? a.Value.ToList()[0] : ""));
return new Result<T>(res, headers);
var postData = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpContent str = new StringContent(jsonData);
str.Headers.Remove("Content-Type");
str.Headers.Add("Content-Type", "application/json");
var response = await _client.PostAsync(_appDomian+url, str);
response.EnsureSuccessStatusCode();
json = await response.Content.ReadAsStringAsync();
var content = new StringContent("image=" + HttpUtility.UrlEncode(base64Img), Encoding.UTF8, "application/x-www-form-urlencoded");
var response = await _client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
MultipartFormDataContent multiContent = new MultipartFormDataContent()
{
{ new StringContent(idCard), "idCard"},
{ new ByteArrayContent(System.IO.File.ReadAllBytes(filePath)), "file", Path.GetFileName(filePath)},
};
var response = await _client.PostAsync(url, multiContent);
response.EnsureSuccessStatusCode();
json = await response.Content.ReadAsStringAsync();
var response = await _client.PostAsync(url, new ByteArrayContent(System.IO.File.ReadAllBytes(filePath)));
response.EnsureSuccessStatusCode();
json = await response.Content.ReadAsStringAsync();
public class Result<T>
{
public bool Success { get; set; } = true;
public string Error { get; set; }
public Dictionary<string, string> Headers { get; set; }
public T Data { get; set; }
public Result(string data)
{
ChangeData(data);
}
public Result(string data, Dictionary<string, string> headers)
{
ChangeData(data);
Headers = headers;
}
public Result(bool success, string error)
{
this.Success = success;
this.Error = error;
}
public void ChangeData(string data)
{
if (!string.IsNullOrEmpty(data))
{
var tType = typeof(T);
string tName = tType.Name.ToLower();
switch (tName)
{
case "int":
case "string":
case "bool":
case "datetime":
case "decimal":
case "char":
case "double":
case "float":
case "long":
this.Data = (T)Convert.ChangeType(data, typeof(T));
break;
default:
this.Data = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(data);
break;
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异