2011-08-23 182 views
0

我們有一個允許固件下載的網站。StreamReader,錯誤請求(400)

Somwhere沿途使用StreamReader。由於某些未知原因,某些客戶(在以色列)收到400錯誤請求錯誤。其他人都沒有得到這個錯誤。

Any1那裏經歷過同樣的事情?任何人都有線索?

protected void Page_Load(object sender, EventArgs e) 
{ 
    string strURL = Request.Url.Host; 
    System.Net.WebRequest reqPT = System.Net.WebRequest.Create("http://" + strURL + "/Products/ProductTree.asp"); 
    System.IO.StreamReader srPT = new System.IO.StreamReader(reqPT.GetResponse().GetResponseStream()); 
    dvPT.Controls.Add(new LiteralControl(srPT.ReadToEnd())); 
} 

它只會在新的StreamReader中崩潰。

謝謝!

更新:我們注意到,客戶實際上在地址(strURL)中丟失了「www」,導致錯誤。爲什麼有人(點擊與地球其他地方相同的鏈接)將會丟失www?我看到2個不同的行爲完全相同的代碼:S

回答

1

以及HTTP 400錯誤所請求的URL可能無效,並且由於您的System.Net.WebRequest中的文字看起來不錯,我的猜測是您的以色列用戶請求頁面使用不同於其他人的Request.Url.Host。你能調試和驗證strUrl的價值嗎?

+0

這是我的猜測。 – JNappi

+0

@pseudocoder我查了網址,很完美。客戶發送了截圖。但是他的FireFox是用希伯來語寫的,這可能是一個因素嗎? – David

+0

@大衛該請求不是由客戶端瀏覽器制定的,所以應該不重要。如果'strURL'是你想要的值,那麼它對任何用戶都應該被處理。當你說你檢查了URL時,你的意思是你在他的截圖中檢查了地址欄嗎?如果是這樣,我認爲你應該在處理他的請求期間更深入地瞭解服務器端正在發生的事情。 – pseudocoder