我通过chrome发出请求:
[org]/api/data/v8.1/accounts?$select=name,accountid&$top=3
我得到了合理的答复:
{
"@odata.context":"[org]/api/data/v8.1/$metadata#accounts(name,accountid)","value":[
{
"@odata.etag":"W/\"769209\"","name":"Telco","accountid":"c6ed63e0-9664-e411-940d-00155d104b35"
},{
"@odata.etag":"W/\"752021\"","name":"Fourth Coffee","accountid":"d1eefc0a-3ebc-e611-80be-24be051ac8a1"
},{
"@odata.etag":"W/\"768036\"","name":"Fourth Coffee","accountid":"3cbb8d24-20bd-e611-80c0-24be051ac8a1"
}
]
}
然而,当尝试通过邮递员执行相同的 GET 时,我的 401未经授权!
我尝试过根本没有标题,以及基本身份验证:
Authorization:Basic Y2hybGFiXxxxxxxxxxxxxxcmQxMjM=
我做错了什么?在CRM中我是否需要改变以允许我从邮递员那里做GET?
以下是Chrome使用的标头(从DevTools获取):
答案 0 :(得分:4)
首先,登录CRM并将标签保留在那里。
进入POSTMan
输入网址并点击SEND,就像那样。 POSTMan将自己处理cookie和标题,你会看到结果。
如果您从CRM注销,POSTMan显然将无法再发出请求,而是会返回401。
答案 1 :(得分:2)
您正在呼叫的服务器似乎需要RFC 4559(https://tools.ietf.org/html/rfc4559)身份验证。更多详情:https://en.wikipedia.org/wiki/SPNEGO。
在浏览器发出GET请求时的工作方式:
如果您尝试自动化针对服务器的请求(可能是内部/内部网公司站点),我不知道有一个工具可以让您这样做(模拟浏览器)。您最好的行动方案可能是某种形式的脚本(如VBS),它将通过COM使用IE并可能为您处理此身份验证(我没有这样做,因此不确定它是否确实有用)。
答案 2 :(得分:1)
您正尝试从邮递员Chrome扩展程序或通过系统上的postman(基于Windows)安装的应用程序进行访问。尝试从chrome扩展程序中获取数据。
答案 3 :(得分:1)
我使用了以下步骤,没关系。
1。打开Google Chrome
2。安装Postman Extension
3。安装Postman的拦截器扩展
4.Open Postman Extension
5。使用同步
6。使用拦截器
答案 4 :(得分:0)
尝试在网址周围加上引号:
curl '[org]/api/data/v8.1/accounts?$select=name,accountid&$top=3'
&,$,=等可能引起问题-我也遇到了同样的问题,而引号是解决方法
答案 5 :(得分:0)
这些帮助了我。
在邮递员和托管页面中检查它是否为NTLM身份验证。
使用方法发布
用户名和密码(您已设置并且不需要作为访问密钥)
答案 6 :(得分:0)
这解决了我的问题。 在邮递员中,我从“授权”选项卡中复制了访问令牌,并且选择了“无身份验证”类型。 然后,我转到“标题”选项卡的“标题下”部分,提供了名称为“ Authorization”的新密钥,并在“值”中传递了带有Bearer的TOKEN前缀。See the below screenshot
答案 7 :(得分:0)
如果浏览器的请求有效,则不使用身份验证。
因此,在邮递员中,对于身份验证,请使用“无身份验证”。 :-)