[英]GET request works in browser and Postman, but I get Unauthorized when using HttpClient and RestSharp
[英]GET request works in browser, but I get Unauthorized when using Postman
我正在通過 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 獲得):
您調用的服務器似乎需要 RFC 4559 ( https://www.rfc-editor.org/rfc/rfc4559 ) 身份驗證。 更多細節在這里: https ://en.wikipedia.org/wiki/SPNEGO。
在來自瀏覽器的 GET 請求的情況下它的工作方式:
如果您嘗試對服務器(可能是內部/內聯網公司站點)自動請求,我不知道有什么工具可以讓您執行此操作(模擬瀏覽器)。 您最好的做法可能是某種形式的腳本(如 VBS),它將通過 COM 使用 IE 並可能為您處理此身份驗證(我沒有這樣做,所以不確定它是否確實有效)。
您正在嘗試從郵遞員 chrome 擴展程序或通過您系統上安裝的郵遞員(基於 Windows)的應用程序訪問。嘗試從 chrome 擴展程序獲取數據。
我使用了以下步驟,沒關系。 請按照以下步驟操作:
Extention
Interceptor
擴展Extention
Sync
Interceptor
在我的.NET項目中,我的Startup.cs
中有兩種不同的身份驗證方案。 我刪除了舊的並添加了它的身份驗證服務並且它工作。
嘗試在您的網址周圍加上引號:
curl '[org]/api/data/v8.1/accounts?$select=name,accountid&$top=3'
&, $, = 等可能會導致問題 - 我遇到了同樣的問題,加上引號是解決方案
這些幫助了我。
檢查它是否在郵遞員和托管它的頁面中都是 NTLM 身份驗證。
使用方法貼
用戶名和密碼(您已設置且不必是訪問密鑰)
我正面臨同樣的問題,我正在使用最新版本的PM v7.12.0。 請讓我知道如何解決此問題。
這解決了我的問題。 在 Postman 中,我從 Authorization 選項卡中復制了 Access Token,並選擇了“No Auth”類型。 然后,我移動到標題選項卡,在標題部分下,我提供了名稱為“授權”的新密鑰,並且在值中我通過了我的 TOKEN 前綴和承載。 看下面的截圖
如果請求來自瀏覽器,則不使用身份驗證。
因此,在 Postman 中,對於身份驗證,請使用無身份驗證。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.