我如何用PHP发送curl请求

时间:2016-06-23 12:53:03

标签: php curl guzzle

如何使用php发送以下curl请求

$ curl -X POST -u "client_id:secret" https://bitbucket.org/site/oauth2/access_token 
-d grant_type=authorization_code -d code={code}

3 个答案:

答案 0 :(得分:2)

使用GuzzleHttp。

<?php
$client = new GuzzleHttp\Client();
$response = $client->request('POST', 'https://bitbucket.org/site/oauth2/access_token', [
    'auth' => ['client_id', 'secret'],
    'form_params' => [
        'grant_type' => 'authorization_code',
        'code' => 'code'
    ]
]);
$code = $response->getStatusCode(); // must be 200
$reason = $response->getReasonPhrase(); // must be OK
$body = (string) $response->getBody(); // must have your data

注意,如果您要实施OAuth客户端,我强烈建议您使用开源库:

答案 1 :(得分:0)

<?php
 if ($curl = curl_init()) {
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_URL, 'http://mysite.ru/');
    curl_setopt($curl, CURLOPT_USERPWD, "client_id:secret");
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "code=someCode&");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $return  = curl_exec($curl);
    curl_close($curl);
}
?>

link

答案 2 :(得分:-1)

步骤1)初始化CURL会话

    $ch = curl_init();

步骤2)提供CURL会话的选项

curl_setopt($ CH,CURLOPT_URL, “http://akshayparmar.in”);

curl_setopt($ CH,CURLOPT_RETURNTRANSFER,TRUE);

// curl_setopt($ ch,CURLOPT_HEADER,true); //如果你想要标题

CURLOPT_URL - &gt;要获取的网址

CURLOPT_HEADER - &gt;包括标题/不是

CURLOPT_RETURNTRANSFER - &gt;如果设置为true,则数据以字符串形式返回,而不是输出。

有关选项的完整列表,请查看PHP文档。

步骤3)。执行CURL会话

    $output=curl_exec($ch);

第4步)。关闭会话

curl_close($ch);

注意:您可以使用以下代码检查CURL是否启用。

如果(is_callable( 'curl_init'))

{

echo“已启用”;

}

否则

{

echo“未启用”;

}

  1. PHP CURL GET示例: - 您可以使用以下代码发送GET请求。
  2. 函数httpGet($ url) {

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    $output=curl_exec($ch);
    curl_close($ch);
    return $output;
    

    }

    echo httpGet(“http://akshayparmar.in”);