Fiddler报告API的不同响应代码与调用应用程序收到的响应代码

时间:2016-03-09 11:02:32

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

我正在调用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重定向作为响应:

enter image description here

然而,在我的通话应用程序中,我收到了401响应。

有人可以解释这里发生了什么吗?

1 个答案:

答案 0 :(得分:3)

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

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

附注:对于通过浏览器浏览网页的用户而言,发布缺失授权的302可能没问题,以便向他显示自定义登录页面。但是对于API,直接产生401可能更好。