在我的一個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