【问题标题】:WebClient UploadString get header and body when receive 400 bad requestWebClient UploadString 在收到 400 错误请求时获取标头和正文
【发布时间】:2017-08-26 02:24:41
【问题描述】:

我正在使用 WebClient.UploadString() 进行 API 调用。它抛出一个异常,因为它是一个错误的请求。我在异常对象或 webclient 对象本身中找不到更多信息。但是如果我使用 Fiddler 来监听请求,它会给我所有的标题和正文信息的细节,所以我知道确切的原因。有没有办法从 UploadString() 中检索这些信息?还是应该使用 HttpRequest 之类的其他方法来获取详细信息?谢谢!

【问题讨论】:

    标签: c# asp.net-web-api webclient


    【解决方案1】:

    您可以使用 System.Net 命名空间中的 HttpWebRequest.GetResponse() 方法。

    您可以在官方 msdn 文档中找到示例: https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.getresponse%28v=vs.110%29.aspx

    另外:您可以捕获异常(从 UploadString 的请求的 try-catch 中)并在遇到任何其他错误时通过重新抛出异常来获取异常堆栈。

    catch (Exception ex) { String.Format("Error occurred {0} - {1}",ex.Message,ex.ToString()); throw; }
    

    您需要先记录异常,然后再重新抛出它以获得相应的信息。如果您不使用日志记录,则无需重新抛出。

    注意:您还可以在“事件”菜单中查看使用 chrome://net-internals chrome 页面发送的站点请求和标头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      相关资源
      最近更新 更多