2011-08-23 154 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