【问题标题】:Fiddler reporting different response code from API to that received by the calling appFiddler 报告从 API 到调用应用程序接收到的不同响应代码
【发布时间】:2016-06-23 17:14:32
【问题描述】:

我正在调用托管在 Azure API 管理中的 API。该 API 配置为使用 Azure Active Directory 进行身份验证,因此在没有授权标头的情况下调用时应生成 302 重定向响应。

这是我的电话:

var request = (HttpWebRequest)WebRequest.Create("MyApiEndPoint");
request.ContentType = "text/html; charset=utf-8";
request.Headers.Add("Ocp-Apim-Subscription-Key", model.SubKey);

var response = (HttpWebResponse)request.GetResponse();

当我在 fiddler 中观看通话时,我确实可以看到 302 重定向作为响应:

但是在我的通话应用中,我收到了 401 响应。

谁能解释这里发生了什么?

【问题讨论】:

    标签: c# asp.net-web-api httprequest fiddler http-status-code-302


    【解决方案1】:

    您尚未根据请求将AllowAutoRedirect 设置为false

    302 是一个重定向,因此您的请求不会将其作为响应传递,而是在重定向资源上发出一个新请求,然后为您生成另一个请求的结果。

    旁注:对于通过浏览器导航网页的用户来说,在缺少授权时发出 302 可能没问题,以便向他显示自定义登录页面。但是对于 API,直接产生 401 可能会更好。

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 1970-01-01
      • 2022-11-10
      • 2021-04-09
      • 2018-12-03
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      相关资源
      最近更新 更多