【问题标题】:why an http post request isn't working in guzzle but works fine in curl为什么http post请求在guzzle中不起作用但在curl中工作正常
【发布时间】:2018-06-14 10:52:07
【问题描述】:

我正在向 github o auth 发送请求以获取用户的访问令牌并尝试使用 guzzle 但响应没有任何价值我不知道为什么,另一方面当我使用curl 它工作正常并成功返回了访问令牌, 我正在使用 guzzle 中的 form_parms 来设置字段

这里是 guzzle 示例

public function fetchGithubToken(\Illuminate\Http\Request $request, $code)
    {


        $client = new \GuzzleHttp\Client();

        $response = $client->request('POST', 'https://github.com/login/oauth/access_token', [

            'form_params' => ['client_id' => env('GITHUB_CLIENTID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'code' => $code],
        ]);

        Log::error(print_r($response, true));
        return $response;


    }

这里是 curl 示例

    public function post_to_url($url, $data)
{
    $fields = '';
    foreach ($data as $key => $value) {
        $fields .= $key . '=' . $value . '&';
    }
    rtrim($fields, '&');

    $post = curl_init();

    curl_setopt($post, CURLOPT_URL, $url);
    curl_setopt($post, CURLOPT_POST, count($data));
    curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($post);

    curl_close($post);

    return $result;

}

public function fetchGithubToken(\Illuminate\Http\Request $request, $code)
{

    $data = ['client_id' => env('GITHUB_CLIENTID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'code' => $code];

    $response = $this->post_to_url("https://github.com/login/oauth/access_token", $data);

    Log::info(print_r($response, true));

    return $response;
}

【问题讨论】:

  • 获取正文使用return (string)$response->getBody()
  • @Abhishek 谢谢它的工作

标签: php laravel curl laravel-5 guzzle


【解决方案1】:

您必须在 cURL 中添加身份验证。您必须使用以下语句,因为 github 需要身份验证:

curl_setopt($process, CURLOPT_USERPWD, $data['username'] . ":" . $data['$password']);

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2018-03-04
    • 2019-12-26
    • 2020-03-28
    • 2018-02-11
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多