作为一项服务,我的服务器有时需要通知客户其资源已准备就绪 为此,他们给我一个URL作为回调,当资源准备就绪时,我发送一个HTTP请求到他们的回调URL。
发起HTTP请求并且不处理响应的最佳方法是什么?
var wc = new WebClient();
wc.DownloadStringAsync(new Uri(url));
例如,在这段代码中,虽然我完全忽略了响应,但是一旦准备就绪,服务器仍然会调用一个线程来下载他们的响应(我不会小心......)。 p>
答案 0 :(得分:0)
我建议您查找一个包含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"));
}
}
}
}