在我的一个Web应用程序中,允许客户提供用作“回调”或通知的URL。 (例如,发生WidgetCreated
事件时,请致电http://customerdomain.com/widget.php?widgetid=101
)如何请求一个URL但不能在.NET下载响应?
我们需要做的就是提出请求;我们不关心的响应,原因有二:
- 它浪费我们的带宽和性能
- 最坏的情况下,滥用客户发回了1GB响应这一要求
如何我可以提出请求,并下载第一个,比如说1K,然后停止下载?
在我的一个Web应用程序中,允许客户提供用作“回调”或通知的URL。 (例如,发生WidgetCreated
事件时,请致电http://customerdomain.com/widget.php?widgetid=101
)如何请求一个URL但不能在.NET下载响应?
我们需要做的就是提出请求;我们不关心的响应,原因有二:
如何我可以提出请求,并下载第一个,比如说1K,然后停止下载?
用HttpWebRequest发出请求并使用GetResponse方法。而不是阅读响应流,只需return
。
您可以发出HEAD请求。这只会下载页面的标题。所以,你仍然在检索内容,但你并没有拉动整个页面。
它的基本要点是简单地将Method
属性设置为"HEAD"
。我把其余部分,包括捕捉异常等等 - 留给你。
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "HEAD";
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
如果Web服务器只允许GET和POST,这很常见? – twk 2011-05-29 01:28:26
@twk:设置request.Method =“GET”或“POST”。什么问题? – 2011-05-29 02:36:40
还有ACCEPT_RANGES http头(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html),但服务器不必遵守它。 – 2011-05-29 01:34:55
这似乎工作得很好;在这个问题上的其他答案也可以工作,但这似乎与仅支持GET的服务器提供了最大的兼容性。 – Brandon 2011-05-29 12:07:59