如何从HttpResponse获取有关BadRequest的更多详细信息

时间:2016-07-05 19:04:44

标签: c# web-services httpresponse error-logging

我正在尝试连接到公司的Web服务,但我收到了BadRequest值。我想这不是一个大问题,我不是在寻求如何解决这个糟糕请求的帮助。我遇到的问题是如何获得有关导致它的更多细节。所以我有这个HttpResponseMessage类变量:

HttpResponseMessage response = c.Post(address, content);
//...fill in content
response = cAssessments.Post(addressInfo, content); //return "Bad Response"

我将其发送到具有适当内容的服务器,然后我收到400回复,说明“错误请求”。我的问题是如何深入挖掘该repsonse变量以确切了解导致它的原因。我正在考虑对我要提供信息的服务有一定的依赖性,所以我会假设它在某处。但是我应该研究的那个变量里面的东西是什么?例如:

“response.StatusCode”给了我400代码。我可以研究哪些其他属性?

感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

使用一些可能出错的有用提示或信息填充BadRequest响应的内容完全取决于响应的Web服务。你不能在你身边做任何事情。

答案 1 :(得分:0)

尝试内容本身,也是原始请求的网址。

根据您要求反对的API,它们可能包含在回复内容中特别导致400的内容。

您要求的格式(json vs xml vs whatever)

答案 2 :(得分:0)

这完全取决于服务返回的内容。要检查这一点,您可以阅读响应流:

using (var stream = response.GetResponseStream ()){
    using (var reader = new StreamReader(stream, Encoding.UTF8)
    {
         var text = reader.ReadToEnd();
         // text contains your info
    }
}

调试的另一个有用选项是使用postman之类的内容,您可以在其中粘贴请求并立即查看完整响应

如果回复中没有包含任何有用的信息,那么您就会陷入困境,但您无法做到这一点。