如何在 .NET 中请求 URL 但不下载响应?
在我的一个 Web 应用程序中,允许客户提供充当“回调”或通知的 URL。 (例如,当WidgetCreated
事件发生时,调用http://customerdomain.com/widget.php?widgetid=101
)
我们需要做的就是发出请求;我们不关心响应,有两个原因:
- 它浪费了我们的带宽和性能
- 最坏的情况是,一个滥用行为的客户向该请求发回 1GB 的响应
我如何发出请求,并下载第一个,比如说 1K,然后然后停止下载?
In one of my web applications, customers are allowed to provide URLs that function as a "callback" or notification. (For example, when the WidgetCreated
event happens, call http://customerdomain.com/widget.php?widgetid=101
)
All we need to do is make the request; we don't care about the response, for 2 reasons:
- It wastes our bandwidth and performance
- Worst case scenario, an abusive customer sends back a 1GB response to this request
How could I make the request, and download the first, say 1K, and then stop the download?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 HttpWebRequest 发出请求并使用 GetResponse 方法。只需
返回
,而不是读取响应流。Make the request with HttpWebRequest and use the GetResponse method. Instead of reading the response stream, just
return
.您可以发出 HEAD 请求。这仅下载页面的标题。因此,您仍在检索内容,但并未提取整个页面。
其基本要点是将
Method
属性设置为"HEAD"
。我把剩下的事情,包括捕获异常等,留给你。You could issue a HEAD request. This only downloads the headers of the page. So, you're still retrieving content, but you're not pulling the entire page.
The basic gist of it is simply setting the
Method
property to"HEAD"
. I leave the rest, including catching exceptions, etc - to you.