簡體   English   中英

API GET 請求適用於 curl,但不適用於 powershell

[英]API GET Request works fine with curl, but with powershell not

下午好,

如果我通過命令行發送這個 curl 請求,它工作正常。 但是當我使用我的 powershell 腳本時,我沒有得到相同的結果。

CURL 腳本:

CURL --request GET "https://staging.tiptrack.nl/Tiptrack.Employer.Api/odata/EmployeeBudgets?$expand=Employee($expand=SecureEmployee)&$top=5"  -H "accept: application/json"  -H "Authorization: Bearer token"

Powershell 腳本:

#------- Opvragen token tiptrack -------
#Dit is de URL waar de token voor tiptrack wordt opgevraagd.
$Url_token="https://tiptracknext-staging-login.indicia.nl/oauth2/aus342go9hNphcHXM0i7/v1/token"

#Dit is de body die mee wordt gestuurd in de request, deze informatie staat gelijk aan de data in de post request vanuit de handleiding.
$Data_token = @{
grant_type="client_credentials"
client_id="123456"
client_secret="123456"
scope="api"
}

$token_tiptrack=Invoke-RestMethod -Method Post -Uri $Url_token -ContentType "application/x-www-form-urlencoded" -Body $Data_token

#------- Opvragen Employerbudgetsid -------
#Dti is de URL waarna de GET request wordt gestuurd om het employerid te kunnen.
$Url_budgetid="https://staging.tiptrack.nl/Tiptrack.Employer.Api/odata/EmployeeBudgets?$expand=Employee($expand=SecureEmployee)&$top=5"

#Dit is header die mee wordt gestuurd in de request. Deze data in deze header staat gelijk aan de data in de API handleiding.
$header_process = @{
Authorization='Bearer '+$token_tiptrack.access_token
"accept"="application/json"
}

#Vanuit het uploaden van het bestand krijgen we een reactie van de server, in deze reactie staat het upload id, deze id hebben we nodig om het bestand te kunnen verwerken. 
Invoke-RestMethod -Uri $Url_budgetid -Method Get -Headers $header_process | Select-Object -ExpandProperty value

我希望有人可以幫助我解決這個問題。 通過 CURL 操作,我得到了前 5 行,通過 powershell,我得到了所有可用的行。

要將字符串值作為逐字或文字傳遞,最好使用單引號或反引號轉義 PowerShell 的特殊字符。 如果字符串中沒有變量引用,單引號是最簡單的。

# Using Single Quotes
$Url_budgetid='https://staging.tiptrack.nl/Tiptrack.Employer.Api/odata/EmployeeBudgets?$expand=Employee($expand=SecureEmployee)&$top=5'

# Escaping the $ while using double quotes
$Url_budgetid="https://staging.tiptrack.nl/Tiptrack.Employer.Api/odata/EmployeeBudgets?`$expand=Employee(`$expand=SecureEmployee)&`$top=5"

使用雙引號將字符串括起來使字符串可擴展。 當代碼運行時, $后跟合法的變量名字符將被解釋為變量引用。 在您的 session 中, $expand$top將替換它們的值,如果您沒有定義它們,它們將是$null 結果,這些字符串似乎已從URI中刪除。 您只需在控制台輸入$Url_budgetid就可以看到這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM