c#http请求尽可能短

时间:2015-08-11 14:12:27

标签: c# .net c#-3.0

发出HTTP请求的最简单方法是什么?我不需要阅读答案,我只想尽可能简单地向网址发送GET请求。我正在使用.NET framework 3.5。也不需要等待回复。

此时我正在使用以下内容,但我想知道是否有更好的(更短/不等待响应)方式。

((HttpWebRequest)WebRequest.Create("http://foo.bar/?q=test")).GetResponse();

1 个答案:

答案 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");

这里的想法是消费代码不需要等待响应,但线程可以等待响应并相应地处理它。即使"处理"它只是意味着无法为成功条件做任何事情。