php如何在curl获取请求标头中使用bearer token?

时间:2017-05-29 07:00:20

标签: php curl http-get

下面的

是一个有效的c#get请求

public HttpResponseMessage ExecuteEndPoint(string endpoint,string accessTocken) {
            HttpResponseMessage responseMessage = new HttpResponseMessage();
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessTocken);
                responseMessage = client.GetAsync(endpoint).Result;
            }
            return responseMessage;
        }

我想在php中使用curl做同样的请求,下面是我试过的

$request_headers=array();
     $request_headers[]='Bearer: '.$access_token;
    //$request_headers[]='Content-Length:150';
    $handle1=curl_init();
    $api_url='here my api get url';


    curl_setopt_array(
        $handle1,
        array(
                CURLOPT_URL=>$api_url,
                CURLOPT_POST=>false,
                CURLOPT_RETURNTRANSFER=>true,
                CURLOPT_HTTPHEADER=>$request_headers,
                CURLOPT_SSL_VERIFYPEER=>false,
                CURLOPT_HEADER=>true,
                CURLOPT_TIMEOUT=>-1
        )
    );

    $data=curl_exec($handle1);
    echo serialize($data);

看起来api没有收到access_token。 任何帮助表示赞赏。 感谢

2 个答案:

答案 0 :(得分:2)

您还需要指定“授权”......

dbname

答案 1 :(得分:1)

$ request_headers [] ='Bearer:'。 $ access_token ;,似乎是一个错字->

$ request_headers [] ='授权:承载'。 $ access_token; ->正确