2013-08-02 61 views
-1

我有一個項目,它包含2頁:test1.aspxtest2.aspx。現在從test1.aspx我想手動請求test2.aspx並從中獲取HTML。我可以使用HttpClientHttpWebRequest來做到這一點。問題是我有一個防火牆,我懷疑它不會工作。有沒有其他方式可以從網頁上下載內容而不需要實際使用HttpWebRequest如何手動請求Asp.Net頁面?

在此先感謝。

+2

您是否嘗試過你懷疑什麼都不行?畢竟,你可能會發現它確實如此。 –

+0

@Adrian:我可以在HttpWebRequest中指定相對路徑嗎?我猜不會。如果我不能指定相對路徑,我相信防火牆會導致問題。 – Jack

+0

你爲什麼要'獲取'HTML?也許有一種替代的方式來做你需要的東西...雖然如果他們在像你說的同一臺服務器上,防火牆將是一個非問題,因爲請求將永遠不會觸及互聯網 – dferraro

回答

1

我不太喜歡你正在做的事情;)無論如何,因爲你的頁面似乎不是靜態頁面(.aspx),所以你必須向你的web服務器發出一個請求,不管你使用什麼方法(HttpClientHttpWebRequest)。

通常,在同一臺機器上完成的請求不會通過網絡。如果DNS別名指向機器IP地址,則會發生環回。

在這種情況下:

  • 如果你的防火牆是您的網絡上的某個地方,你不關心 它,如果你談論一個防火牆軟件的要求都不會離開你的主機
  • ,在您的機器上,它可能會阻止 的請求。您可能需要批准這種請求,或者強制DNS本地主機中的文件來指定127.0.0.1(這是一個真正的本地主機),如果您是在Windows服務器上,你的網站需要身份驗證可能與 大多數防火牆軟件
  • 工作,你可能要應對Loopback Check(或here

注:環回通常被認爲是安全漏洞,不推薦。

你應該考慮一下像Ajax的Web服務,Web或用戶控件的另一個解決方案(前面已經說了)等等