我正在访问rest api。 我必须做POST。 Web服务托管在基本身份验证之后。 要访问给定的端点,我还必须发送一个授权标头。
情况1: curl GET http://username:password@example.com/endpoint1 =>有效
情况2: curl GET http://@example.com/endpoint1 -H“授权:基本base64_encode(username:password)” =>有效
情况3: curl POST http://@example.com/endpoint2 -H“授权:基本base64_encode(username:password),基本another_auth_token” =>无效
情况4: curl POST http://username:password@example.com/endpoint2 -H“授权:基本的another_auth_token” =>不起作用
还尝试使用php curl curl_setopt($ ch,CURLOPT_USERPWD,'username:password'),它不起作用。
尝试添加标头,内容类型:application / json和application / x-www-form-urlencoded,但无效。
我需要带有两个授权标头的curl POST才能工作。
任何指针可能会丢失什么?
答案 0 :(得分:0)
curl -X POST
'https://api.amazon / shopify or "your URL"/'
-H 'Authorization: Bearer {token}' // or/AND your USER KEY and PASS in Base 64
-H 'Accept: application/json'
-H 'Content-Type: application/json'
对于CURL中的body参数,您应该在最后一个Header参数之后使用-d'{your body in json}。(-H)
答案 1 :(得分:0)
只需两次通过“ -H授权”:
curl -X POST http://example.com/endpoint2 \
-H "Authorization: Basic base64_encode_username_colo_password" \
-H "Authorization: Basic another_auth_token"
我得到:
POST / HTTP/1.1
Host: localhost:10101
User-Agent: curl/7.47.0
Accept: */*
Authorization: Basic base64_encode_username_colo_password
Authorization: Basic another_auth_token
但是请记住,服务器(以及下游服务器)必须能够处理多个授权标头。