2016-01-15 187 views
0

我将使用这个。 http://www.matlus.com/httpwebrequest-asynchronous-programming/Web请求异步完成

但是我怎样才能知道请求已完成?那么我怎么知道所做的工作?

我用喜欢它:

PostAsync(url, postParameters, callbackState => 
{ 
    if (callbackState.Exception != null) 
    { 
     throw callbackState.Exception; 
    } 
    else 
    { 
     WriteCallBack(GetResponseText(callbackState.ResponseStream)); 
    } 
}); 

但我不知道是否结束处理?

+0

在“if”行上放置一个断点并逐步完成。 –

+0

我想要一些消息框,如果过程完成。我不知道什么时候会结束, – caras

回答

2

在本文档中,它说:

所有这些方法还需要叫回与HTTP调用的响应回调委托[...]回调将被调用为每个响应,如,当接收到响应,我们只是继续与处理响应,因为我们认为合适的

不管你用callbackState代表做,这将持有响应内容。这就是你知道它会被完成的方式。

编辑:来自文档的示例。

 ServicePointManager.DefaultConnectionLimit = 50; 
     var url = "http://localhost/HttpTaskServer/default.aspx"; 

     var iterations = 1000; 
     for (int i = 0; i < iterations; i++) 
     { 
     var postParameters = new NameValueCollection(); 
     postParameters.Add("data", i.ToString()); 
     HttpSocket.PostAsync(url, postParameters, callbackState => 
      { 
      if (callbackState.Exception != null) 
       throw callbackState.Exception; 
      Console.WriteLine(HttpSocket.GetResponseText(callbackState.ResponseStream)); 
      }); 
     } 
+0

你能举个例子吗? – caras

+0

你需要什么样的例子? –

+0

作为使用类型的一个例子? – caras