2009-08-20 41 views
3

我希望服務器以編程方式調用URL(ashx頁面)並將響應存儲爲字符串。使用HttpWebRequest似乎不會正常工作,因爲我不想在那裏重定向客戶端。如何以編程方式在ASP.NET中請求URL?

謝謝。

+4

使用電話。你的意思是什麼? – 2009-08-20 17:47:37

+5

爲什麼你不能使用HttpWebRequest? – 2009-08-20 17:54:34

+0

他可能是在開玩笑的電話部分,但調用一個URL沒有任何意義。 – Amok 2009-08-20 17:54:56

回答

13

如果你想調用另一個頁面並得到迴應作爲字符串,你可以使用WebClient類。

var myWebClient = new WebClient(); 
string resultStr = myWebClient.DownloadString("http://www.google.com"); 
+0

,謝謝。我不認爲我是非常不清楚...... – Jason 2009-08-20 18:03:26

+0

有人可以請解釋我怎麼能更好地問這個問題? – Jason 2009-08-20 18:04:12

+0

@Jason - 沒有人知道你的意思是「call」,爲什麼你不能使用HttpWebRequest,因此你的問題不清楚。 – 2009-08-20 18:06:01

1

的ASHX裏面你應該使用Response.Redirect:

System.Web.HttpContext.Current.Response.Redirect("http://www.stackoverflow.com/"); 

或:

System.Web.HttpContext.Current.Server.Transfer("a path to a page on the same server"); 

在你的頁面,你可以做:

  • 的Response.Redirect
  • Server.Trasfer
  • 添加一項PostBackUrl屬性的按鈕
  • 用一個簡單的超級鏈接
+0

是不是隻是把那個文本寫到頁面上呢?我需要實際去該網站... – Jason 2009-08-20 17:51:26

+0

你是對的,正確的方法是重定向。我已經編輯了我正在尋找的答案 – Raphael 2009-08-20 17:59:06

2

首先,您需要定義由「呼」你的意思:

  • 如果用戶的瀏覽器導航到一個特定的網址是什麼?使用Response.Redirect()

  • ASP.Net頁面的輸出應該包含另一個URL的內容嗎?使用iframe

  • 你想讓你的代碼檢索另一個URL的內容並處理它嗎?使用WebRequest.Create(),但請注意,該請求默認由IIS用戶提出。

我以爲HttpWebRequest的 「易」 的方式,雖然。這有什麼不好?

1

沒有發送請求的情況下無法接收回應。使用HttpWebRequest或簡化的WebClient類。

0

您可能想使用套接字。但這聽起來很瘋狂。你可以使用XMLHttpRequest對象,你知道MSXML2.XMLHttpRequest,但是這又瘋了。這是不是意味着「不發送字節信息」部分...

相關問題