HttpWebRequest类型“GET”返回错误400

时间:2011-09-08 15:04:26

标签: c# httpwebrequest

似乎只发生一台机器而没有其他机器。

HttpWebRequest myRequest =(HttpWebRequest)WebRequest.Create("https://connect.zystemsgo.com/auto/");
        myRequest.Method = "GET";
        SetCertificatePolicy();
        Application.DoEvents();
        WebResponse myResponse = myRequest.GetResponse();
        StreamReader sr = new StreamReader(myResponse.GetResponseStream(),System.Text.Encoding.UTF8);
        string result = sr.ReadToEnd();

我尝试搜索其他400个请求错误,但目前尚不清楚。我该如何调试呢?

4 个答案:

答案 0 :(得分:2)

HTTP Error 400表示错误请求。这是由服务器返回的。

通常,当我调试HTTP请求时,我使用Fiddler来监视请求和响应,并找出正在发生的事情。它永远不会失败。

答案 1 :(得分:1)

(不是真正的答案,但对评论来说太大了)

为了它的价值,我运行了以下Python代码(懒得旋转C#:),它运行良好:

import httplib
conn = httplib.HTTPSConnection('connect.zystemsgo.com')
conn.request('GET', '/auto/')
resp = conn.getresponse()
data = resp.read()
print data           # expected ouput, just like visiting in a browser
print resp.status    # 200

您确定向我们展示了实际失败的网址,或者您的代码是更一般的示例吗?

也许该机器上没有安装服务器证书?在这种情况下我不会期望HTTP 400,但这是我到目前为止唯一能想到的......

答案 2 :(得分:0)

这是一个错误的请求错误。请求中是否没有参数? 你能否发布回复信息,它会让你知道出了什么问题。

答案 3 :(得分:0)

我在上面的评论中提供的代码有效。     WebClient webClient = new WebClient();     webClient.DownloadFile(“你的文件的完整网址”,@“c:\ myfile.txt”);

您需要拥有在您选择的目录中写入的权限。

如果你愿意,你也可以尝试使用异步下载。我不明白为什么它不适用于某台机器。