如何传递两个授权标头以卷曲POST请求

时间:2020-02-21 20:49:03

标签: rest authentication curl http-headers authorization

我正在访问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才能工作。

任何指针可能会丢失什么?

2 个答案:

答案 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

但是请记住,服务器(以及下游服务器)必须能够处理多个授权标头。