UploadStringAsync()的返回值。?

我的问题是正确的还是不正确我不知道,但我想知道是否可以使用WebClient返回post方法的UploadStringAsync()的值?

string serviceURL = REST_URI + servicePath; Uri URI = new Uri(serviceURL); System.Net.WebClient webClient = new WebClient(); webClient.Headers["ContentType"] = "application/json"; webClient.Headers["Accept"] = "application/json"; webClient.UploadStringCompleted += this.sendPostCompleted; webClient.UploadStringAsync(URI, HTTP_POST, result); return ??; 

如果我们可以返回UploadStringAsync(URI, HTTP_POST, result); 请告诉我?

您可以使用UploadStringCompleted事件并在事件处理程序中获取结果。 上传完成(失败或成功)后,将引发事件。

连接

 client.UploadStringCompleted += new UploadStringCompletedEventHandler (UploadStringCallback2); 

使用:

 void UploadStringCallback2(object sender, UploadStringCompletedEventArgs e) { //e.Result use it } 

如果要返回上传结果,可以使用AutoResetEvent等待事件被提升

该function没有任何回报。 您已经为UploadStringCompleted设置了事件处理程序,您可以在处理程序中获取操作的结果。

这是签名:

 public delegate void UploadStringCompletedEventHandler( Object sender, UploadStringCompletedEventArgs e ) 

第二个参数包含您需要的信息: UploadStringCompletedEventArgs , Result属性包含服务器的响应。

从.NET 4.5我们可以使用UploadStringTaskAsync直接检索返回值。

 string rspBody = await client.UploadStringTaskAsync(uri, "POST"); 

ref: MSDN