[英]HttpClient.PostAsJsonAsync crashing without throwing exception
[英]HttpClient.PostAsJsonAsync crushed without exception
我正在嘗試使用 HttpClient.PostAsJsonAsync 調用 api(POST 方法)。 但是,它毫無例外地停在了 httpClient.PostAsJsonAsync 處。
源代碼如下:
public static async Task<oResult> PostApi(string JSON_sObject, string sEnd_Url) {
oResult oResult = new oResult();
var Data = JsonConvert.DeserializeObject(JSON_sObject);
var Url = "http://localhost:44340/" + sEnd_Url;
HttpClient httpClient = new HttpClient();
try {
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await httpClient.PostAsJsonAsync(new Uri(Url), Data); // it stopped here
if (response.IsSuccessStatusCode)
{
var sResponse_content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<oResult>(sResponse_content);
}
else
{
return oResult;
}
}
catch (Exception ex)
{
LogFile(ex);
return oResult;
}
}
如果源代碼有任何問題,請告訴我。
謝謝
你不應該嘗試序列化反序列化兩次
從您的代碼中刪除
var Data = JsonConvert.DeserializeObject(JSON_sObject);
並更換
HttpResponseMessage response = await httpClient.PostAsJsonAsync(new Uri(Url), Data);
有了這個
var content = new StringContent(JSON_sObject, Encoding.UTF8, "application/json");
var response = await client.PostAsync(sEnd_Url, content);
還修復了基本的 httpclient 地址
var baseUri= @"http://localhost:44340";
using HttpClient client = new HttpClient { BaseAddress = new Uri(baseUri) };
try {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.