发出HTTP请求的最简单方法是什么?我不需要阅读答案,我只想尽可能简单地向网址发送GET请求。我正在使用.NET framework 3.5。也不需要等待回复。
此时我正在使用以下内容,但我想知道是否有更好的(更短/不等待响应)方式。
((HttpWebRequest)WebRequest.Create("http://foo.bar/?q=test")).GetResponse();
答案 0 :(得分:1)
也不需要等待回复。
要求 非常小心 。人们似乎爱来解雇和忘记"出于性能原因,直到系统出现问题为止。然后他们发现"忘了" part表示系统是明确设计的 not 来处理错误条件。
现在,说了这么多,因为你使用3.0并且没有async
或TPL的奢侈品,你可能只是想开始一个线程来完成工作所以被调用的代码立即返回。 ("不要等待回复"部分。)将它与一个方便的方法包装在一起,你就得到了"短"部分也是如此。
也许是这样的:
public static void SendRequest(string url)
{
var thread = new Thread(ThisClass.SendRequest));
thread.Start(url);
// maybe do something to monitor the thread object?
}
private static void SendRequest(object url)
{
var response = ((HttpWebRequest)WebRequest.Create(string.Format("{0}", url))).GetResponse();
// You have a response, might as well examine it for success/failure
}
所以消耗代码只会调用:
ThisClass.SendRequest("http://foo.bar/?q=test");
这里的想法是消费代码不需要等待响应,但线程可以等待响应并相应地处理它。即使"处理"它只是意味着无法为成功条件做任何事情。