【问题标题】:The remote server returned an error (400) Bad Request using webrequest远程服务器使用 webrequest 返回错误 (400) Bad Request
【发布时间】:2014-07-06 16:16:22
【问题描述】:

当我在 URL 上执行 HttpWebRequest.GetResponse 时,GetResponse 返回“远程服务器返回错误:(400) 错误请求。”而不是响应。

奇怪的是,当我在浏览器上运行这个网址时,我得到了正确的响应

webrequest 不需要返回和浏览器一样的值吗?

以下代码返回错误请求

 // Create a request for the URL. 
            WebRequest request = WebRequest.Create(
              "http://someUrl/api/v5/basicAuth");


            // Get the response.
            WebResponse response = request.GetResponse();
            // Display the status.
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Get the stream containing content returned by the server.
            Stream dataStream = response.GetResponseStream();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();
            // Display the content.
            Console.WriteLine(responseFromServer);
            // Clean up the streams and the response.
            reader.Close();
            response.Close();

也尝试使用 WebClient 获得相同的结果。

知道如何获得与浏览器相同的正确响应吗?

【问题讨论】:

    标签: asp.net httpwebrequest


    【解决方案1】:

    标题说您收到 400 错误请求,但在您的问题中您说 404 Not Found。这些是非常不同的。对于 404,我将对 URL 本身以及请求的路由方式、DNS 等进行故障排除,如果它是 400,那么我将使用 Fiddler 之类的东西来捕获我的请求在使用浏览器时的外观,然后看看是什么请求看起来像来自程序时的样子,看看有什么不同/缺少什么。可能需要一些 HTTP 标头,例如内容类型或 cookie 的处理等。但像 Fiddler 这样的东西至少可以让你开始。

    【讨论】:

    • 是的,如上所示尝试简单的 WebRequest 时出现 400 错误。尝试将一些数据发布到此 url 时出现 404。
    • 那么您“应该”如何与 URL 进行交互?这是一个只响应 GET、POST、PUT 等的 Web 服务吗?如果您可以使用浏览器成功访问它并查看数据,那么我认为 GET 有效。所以我会尝试 Fiddler 看看您的浏览器请求和代码中的 HttpWebRequest 之间有什么区别。
    • 是的,它是一个响应 GET、POST 的 Web 服务。我将检查 Fiddler 以查看差异。谢谢
    • 您还应该能够使用 Fiddler 的“Composer”来创建 POST 请求以进行进一步的故障排除。 Firefox 也有一个名为 Posterizer 的插件,它可以做类似的事情。
    • 您是否有幸看到与 Fiddler 的不同之处?你发现问题了吗?
    猜你喜欢
    • 2010-12-13
    • 1970-01-01
    • 2013-04-20
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多