2016-08-24 387 views
0

我有這樣的代碼:ASP.Net窗體HttpClient的PostAsync沒有反應,沒有錯誤消息

using (var client = new HttpClient()) 
{ 
    var values = new Dictionary<string, string> 
     { 
      {"site_id","001"}, 
      {"apikey","abc01201az1024"}, 
      {"trans_id","45364136"}, 
     }; 

    // Get the parameters in the url encoded format 
    var content = new FormUrlEncodedContent(values); 

    //Send request 
    var response = await client.PostAsync(url, content); 

    DataRoot<Transaction> outPut = null; 
       if (response.IsSuccessStatusCode) 
       { 
        //Get Response 
        var result = await response.Content.ReadAsStringAsync(); 
        JsonConvert.DeserializeObject<DataRoot<Transaction>>(result); 
       } 

       return outPut; 
} 

在調試模式下在該階段,將碼不產生任何響應,沒有錯誤的代碼,但停止運行:

//Send request 
var response = await client.PostAsync(url, content); 
+0

「停止跑步」是什麼意思?它是停在那條線上還是完全退出? – DavidG

+0

在該行應用程序掛起幾秒鐘,然後停止。該代碼不會轉到下一行。 – Jmocke

+0

但是你沒有對'response'對象做任何事情,你想要發生什麼? – DavidG

回答

0

您確定它沒有真正返回響應並繼續執行嗎?由於client.PostAsync()調用正在等待執行,因此可能會在不同的線程上繼續執行。因此,如果你只是逐行調試(通過F10或類似的),它可能看起來該方法永遠不會返回;實際上整個方法已經完成並且你的程序正在運行。

您可能需要在方法中添加另一個斷點(在PostAsync方法調用之後)。當PostAsync方法在另一個線程上返回時,您的調試器應該觸發下一個斷點。

相關問題