2011-05-29 64 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

相關問題