如何发送HTTP请求并且不处理响应
问题描述:
作为服务,我的服务器有时需要通知客户端其资源已准备好使用。
为了实现这一点,他们给我一个URL作为回调,当资源准备好时,我发送一个HTTP请求到他们的回调URL。如何发送HTTP请求并且不处理响应
发起HTTP请求并不处理响应的最佳方式是什么?
var wc = new WebClient();
wc.DownloadStringAsync(new Uri(url));
在此代码例如,虽然我忽略响应完全,服务器将仍然调用线程下载他们的反应(这是我一点也不在乎......)一旦它准备好了。
答
我建议你寻找一个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
既然你已经这样做了,有什么用,你有什么问题吗? – krisdyson 2014-09-22 09:49:22