簡體   English   中英

HttpClient.PostAsJsonAsync 無一例外地崩潰了

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM