【问题标题】:Unable to see response body from HTTPWebRequest when status is 400当状态为 400 时,无法看到来自 HTTPWebRequest 的响应正文
【发布时间】:2011-04-08 15:40:50
【问题描述】:

在下面,ar.GetResponseAsString() 只是抛出一个异常。

这是我的代码:

AsyncCallback GetTheResponse = ar =>
{
    try
    {
        var result = ar.GetResponseAsString();
        Debug.WriteLine(string.Format("ResponseStream:::{0}", result));
        callback(result, null);
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.ToString());
    }
}

我做错了什么?

【问题讨论】:

  • 请问异常信息是什么?
  • "远程服务器返回错误:未找到。"问题是,我已经使用 Whurl:whurl.heroku.com 复制了相同的调用,并且即使状态为 400(这是我现在要达到的部分)也有一个响应主体:{“用户”:{“ errors": { "password": "is too short (minimum is 4 characters)" } }, "error": { "httpCode": 400, "message": "Invalid parameters for user" } }

标签: windows-phone-7 httpwebrequest httpwebresponse


【解决方案1】:

捕获 400 抛出的 WebException,然后从异常消息中获取响应。这就是你的错误响应隐藏的地方

【讨论】:

  • 是的... AsyncCallback GetTheResponse = ar => { try { var result = ar.GetResponseAsString();回调(结果,空); } catch (WebException ex) { 流流 = ex.Response.GetResponseStream(); StreamReader reader = new StreamReader(stream);字符串结果 = reader.ReadToEnd(); Debug.WriteLine(结果); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
相关资源
最近更新 更多