2016-08-24 128 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方法在另一个线程上返回时,您的调试器应该触发下一个断点。

相关问题