c# - GET 请求在浏览器中有效,但在使用 Postman 时我得到了 Unauthorized

标签 c# http postman http-get dynamics-crm-2016

我正在通过 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"
    }
  ]
}

但是,当尝试通过 postman 执行相同的 GET 时,我收到了 401 unauthorized!

我已经尝试过完全不使用 header 以及基本身份验证:

Authorization:Basic Y2hybGFiXxxxxxxxxxxxxxcmQxMjM=

我做错了什么?我是否需要在 CRM 中更改某些内容以允许我从 postman 那里执行 GET?

以下是 Chrome 使用的 header (从 DevTools 获取):

  • 接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
  • 接受编码:gzip、deflate、sdch
  • 接受语言:en-US,en;q=0.8
  • 授权:谈判 TlRMTVNTUAADAAAAGAAYAIoAAABkAWQBogAAAAwADABYAAAADgAOAGQAAAAYABgAcgAAABAAEAAGAgAAFYKI4gYBsR0AAAAPai35LURprYMgYVSwMQXi/2MAaAByAGwAYQBiAGEAZwBvAHIAZABvAG4ASABPAFUALQBXAFMALQBBAEcATwBSAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd0avVN8acJQKvlSN8hYrSgEBAAAAAAAAoBg7uZi80gEIIthtN5clBAAAAAACAAYARABFAFYAAQAUAEIAQQBOAEMAUgBNADIAMAAxADYABAAcAGQAZQB2AC4AYwBoAHIAbABhAGIALgBpAG4AdAADADIAQgBBAE4AQwBSAE0AMgAwADEANgAuAGQAZQB2AC4AYwBoAHIAbABhAGIALgBpdddddddddddddddbABhAGIALgBpAG4AdAAHAAgAoBg7uZi80gEGAAQAAgAAAAgAMAAwAAAAAAAAAAEAAAAAIAAAccTLbO5YZuNnhdCDsjPCg1YXJuNv0XuASIhHrWWBg7kKABAAAAAAAAAAAAAAAAAAAAAAAAkAPABIAFQAVABQAC8AYgBhAG4AYwByAG0AMgAwADEANgAuAGQAZQB2AC4AYwBoAHIAbABhAGIALgBpAG4AdAAAAAAAAAAAAAAAAACtRrU1oDZ/XXRVVEUuj0yT
  • 缓存控制:最大年龄=0
  • Cookie:ReqClientId=42484e9a-f488-41a9-a016-1cd6e5820b3c
  • 主机:我的主机....
  • 代理连接:保持事件状态
  • 升级不安全请求:1
  • 用户代理:Mozilla/5.0(Linux;Android 6.0;Nexus 5 Build/MRA58N)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/57.0.2987.133 Mobile Safari/537.36

最佳答案

首先,登录 CRM 并将选项卡保留在那里。

进入 POSTMan

启用拦截器(见图) interceptor

输入 URL 并点击发送,就这样。 POSTMan 将自行处理 cookie 和 header ,您将看到结果。

如果您从 CRM 注销,POSTMan 显然将无法再发出请求,而是返回 401。

关于c# - GET 请求在浏览器中有效,但在使用 Postman 时我得到了 Unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577557/

相关文章:

c# - 通过 Graph API 从 Microsoft Planner 任务中检索附件

c# - 复合异步调用 - 怎么做?

C# 使用新客户端连接时的事件构建简单服务器

asp.net - 在 ASP.NET 5 响应中设置 Content-Length header

python - 如何使用 Python 通过 HTTP 发送文件?

http - ISO-8859-1 编码网站中的变音符号

Laravel X-CSRF-Token 与 POSTMAN 不匹配

json - 在 Postman 中制作动态名称文本字段

node.js - 在 ubuntu 上运行 newman 时出现语法错误

c# - 何时/何地使用 azure 后端刷新 Windows 10 应用程序中的访问 token