dongmu5106 2018-07-08 11:08
浏览 414
已采纳

如何通过guzzle运行cURL

First time using cURL and guzzle. This is probably a simple question but would appreciate a "helloworld" example.

This is the cURL I currently have:

curl --include --request POST \
--header "application/x-www-form-urlencoded" \
--header "X-Access-Token: ACCESS_TOKEN" \
--data-binary "grant_type=client_credentials&client_id=PUBLIC_KEY&client_secret=PRIVATE_KEY" \
'https://api.url.com/token'

And this is the guzzle code:

$client = new Client(); //GuzzleHttp\Client
$result = $client->post('https://api.url.com/token', [
    'form_params' => [
        'sample-form-data' => 'value'
    ]
]);

I'm not sure how to run the cURL command using guzzle. How would the resulting guzzle code look like?

  • 写回答

3条回答 默认 最新

  • douying9296 2018-07-09 10:34
    关注

    So here's the answer for converting cURL to Guzzle. Maybe it will help future people that need a "helloworld" like I did. This is how I ran the cURL in PHP via Guzzle:

    $client = new Client();
    $uri = 'https://api.url.com/token';
    $headers = [
        'Content-Type' => 'application/x-www-form-urlencoded',
        'X-Access-Token' => $ACCESS_TOKEN
    ];
    $body = 'grant_type=client_credentials&client_id='.$PUBLIC_KEY.'&client_secret='.$PRIVATE_KEY;
    $result = $client->request('POST', $uri, [
        'headers' => $headers,
        'body' => $body
    ]);
    
    json_decode($result->getBody()->getContents(), true);
    

    Two things that weren't intuitive was you have to designate 'application/x-www-form-urlencoded' as Content-Type. And 'data-binary' as 'body'.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?