HttpWebRequest -- 一个很坑的401 UnAuthorization的解决方法
昨天,一个新的客户在使用软件的时候,出现了401 UnAuthorization的错误。这个错误是在软件Call Restful API的时候出现的。软件使用HttpWebRequest来Call Restful API.
查看解决方法,有下面几个原因会导致这个问题:
这几个地方我都检查了,都是正确的。而且很奇怪的是,Postman中,相同的设置可以查询到数据,而使用C#程序就是不能得到数据,而且一直提示401。
由于一直找不到原因,就使用Wireshark来抓包数据进行对比,对比发现Authorization信息都是一样的,到这里就完全没有头绪了。
后续更换Call Restful API的方式,没有使用HttpWebRequest,使用第三方dll Stormpath.SDK来call api,发现返回信息变成了301 Moved。这个时候,偶然发现,将http修改为https,一切就都OK了。
这样一通下来,感觉技术支持胡乱设置坑人,Request返回信息不准确也很坑人。