如何发送HTTP请求并且不处理响应

如何发送HTTP请求并且不处理响应

问题描述:

作为服务,我的服务器有时需要通知客户端其资源已准备好使用。
为了实现这一点,他们给我一个URL作为回调,当资源准备好时,我发送一个HTTP请求到他们的回调URL。如何发送HTTP请求并且不处理响应

发起HTTP请求并不处理响应的最佳方式是什么?

var wc = new WebClient(); 
wc.DownloadStringAsync(new Uri(url)); 

在此代码例如,虽然我忽略响应完全,服务器将仍然调用线程下载他们的反应(这是我一点也不在乎......)一旦它准备好了。

+0

既然你已经这样做了,有什么用,你有什么问题吗? – krisdyson 2014-09-22 09:49:22

我建议你寻找一个ID为:Microsoft.Net.Http的包,并使用该库中更现代的HttpClient。 然后,这只是一个问题,是否“等待”响应或不响应。如果你不等待,然后它基本上是射后不理你实现想要的行为:

using System; 
using System.Net.Http; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
public class HttpHelper 
{ 

    public static async Task WaitForResponse() 
    { 
     using (var client = new HttpClient()) 
     { 
      HttpResponseMessage response = await client.GetAsync(new Uri("http://google.com")); 
     } 
    } 

    public static async Task FireAndForget() 
    { 
     using (var client = new HttpClient()) 
     { 
      client.GetAsync(new Uri("http://google.com")); 
     } 
    } 
} 

}

+1

这相当于我已经有的代码。即使你不“等待”响应,它仍在处理中。对不起,但它根本不回答我的问题。 – gdoron 2014-09-22 10:56:37