programing

cURL에서 HTTP 헤더가 있는 API 키 전달

lovejava 2023. 8. 17. 20:30

cURL에서 HTTP 헤더가 있는 API 키 전달

API 키로 인증되는 API Proxy를 Apigee에 가지고 있습니다.다음 명령을 사용하여 HTTP 요청 헤더로 키를 전달합니다.

curl -v -H "apikey: my_key" http://api_org-test.apigee.net/v1/helloapikey

다음 오류가 발생했습니다.

Invoke-WebRequest : Cannot bind parameter 'Headers'. Cannot convert the 
"apikey: my_key" value of type "System.String" to 
type "System.Collections.IDictionary".

헤더가 아닌 쿼리 매개 변수에서 키를 찾도록 정책을 수정하면 정상적으로 작동합니다.내가 뭘 빠트렸나요?

사용해 보십시오.

curl -v -H @{'apikey' = 'my_key'} http://api_org-test.apigee.net/v1/helloapikey

참고: curl의 별칭입니다.Invoke-WebRequestcmdlet:

Get-Alias curl

출력:

CommandType     Name
-----------     ----
Alias           curl -> Invoke-WebRequest 

컬을 설치할 수 있습니다. https://stackoverflow.com/a/16216825/3013633

다음 명령을 실행하여 기존 컬 별칭을 제거합니다.

Remove-item alias:curl

그러면 명령이 작동합니다.

curl -v -H "apikey: my_key" http://api_org-test.apigee.net/v1/helloapikey

위의 답변 중 아무 것도 저에게 효과가 없었습니다(오류가 발생했습니다).parse error near }).

이것은 효과가 있었습니다.

curl -X GET \
  'http://api_org-test.apigee.net/v1/helloapikey' \
  -H 'apikey: my_key'

PowerShell은 URL 내의 변수를 확인할 수 없습니다. URI에서 서비스를 쿼리하려고 합니다.http://$serverHost:1234/service효과가 없을 겁니다할 수 있습니다

$serverHost = "myHost"
$service = "http://$serverHost`:1234/service"
Invoke-WebRequest $service -Method Get

이것을 토론에 추가하기 위해, 저는 api 키를 해시해야 했지만, 토큰 호출 키 구문을 'apikey'로 변경하는 대신 남겨두었습니다.그것이 바로 저에게 효과가 있었던 것입니다!

curl -v -H @{'X-API-TOKEN' = '[*insert key here*]'} '*datacenter_url*)'

PowerShell 신입사원들에게도 주목할 만한 점으로, -v는 장황한 내용을 나타냅니다.이 스위치는 PS가 실행 중인 명령에 대한 PowerShellise의 명령 아래 시안색 텍스트를 제공합니다.거의 한 편 한 편의 해설처럼 말입니다.제가 언급할 정도로 충분히 유용합니다.

언급URL : https://stackoverflow.com/questions/40838141/passing-api-key-with-http-header-in-curl