2011-05-29 54 views
1

在我的一个Web应用程序中,允许客户提供用作“回调”或通知的URL。 (例如,发生WidgetCreated事件时,请致电http://customerdomain.com/widget.php?widgetid=101如何请求一个URL但不能在.NET下载响应?

我们需要做的就是提出请求;我们不关心的响应,原因有二:

  • 它浪费我们的带宽和性能
  • 最坏的情况下,滥用客户发回了1GB响应这一要求

如何我可以提出请求,并下载第一个,比如说1K,然后停止下载?

回答

1

用HttpWebRequest发出请求并使用GetResponse方法。而不是阅读响应流,只需return

+0

还有ACCEPT_RANGES http头(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html),但服务器不必遵守它。 – 2011-05-29 01:34:55

+0

这似乎工作得很好;在这个问题上的其他答案也可以工作,但这似乎与仅支持GET的服务器提供了最大的兼容性。 – Brandon 2011-05-29 12:07:59

1

您可以发出HEAD请求。这只会下载页面的标题。所以,你仍然在检索内容,但你并没有拉动整个页面。

它的基本要点是简单地将Method属性设置为"HEAD"。我把其余部分,包括捕捉异常等等 - 留给你。

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; 
request.Method = "HEAD"; 
HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
+0

如果Web服务器只允许GET和POST,这很常见? – twk 2011-05-29 01:28:26

+0

@twk:设置request.Method =“GET”或“POST”。什么问题? – 2011-05-29 02:36:40

相关问题