【问题标题】:Guzzle HTTP - add Authorization header directly into requestGuzzle HTTP - 将授权标头直接添加到请求中
【发布时间】:2016-06-30 22:08:57
【问题描述】:

谁能解释如何在 Guzzle 中添加授权标头?我可以看到下面的代码可用于添加用户名和密码,但在我的实例中,我只想添加授权标头本身

$client->request('GET', '/get', ['auth' => ['username', 'password']

我想添加到我的 GET 请求的基本授权标头:-

Basic aGdkZQ1vOjBmNmFmYzdhMjhiMjcwZmE4YjEwOTQwMjc2NGQ3NDgxM2JhMjJkZjZlM2JlMzU5MTVlNGRkMTVlMGJlMWFiYmI=

【问题讨论】:

    标签: php rest http guzzle guzzle6


    【解决方案1】:

    我不知道我是如何错过阅读您正在寻找 Basic auth 标头的信息,但仍然希望这会有所帮助。如果您只是想添加 Authorization 标头,那应该很容易。

    // Set various headers on a request
    $client->request('GET', '/get', [
    'headers' => [
        'Authorization'     => 'PUT WHATEVER YOU WANT HERE'
        ]
    ]);
    

    我在 Guzzle 中逐步建立我的请求,因此我使用以下内容:

    $client = new GuzzleHttp\Client();
    $request = $client->createRequest('GET', '/get');
    $request->addHeader('X-Authorization', 'OAuth realm=<OAUTH STUFF HERE>');
    $resp = $client->send($request);
    

    希望对您有所帮助。此外,请确保包含您将来使用的库版本,因为语法会根据您的版本发生变化。

    【讨论】:

      【解决方案2】:

      我正在使用 Guzzle 6。如果您想使用基本身份验证方案:

      $client = new Client();
      $credentials = base64_encode('username:password');
      $response = $client->get('url',
              [
                  'headers' => [
                      'Authorization' => 'Basic ' . $credentials,
                  ],
              ]);
      

      【讨论】:

        【解决方案3】:

        从外观上看,您正在尝试使用 API 密钥。要获得您想要的效果,只需将null 作为用户名传入,如下所示。

        $client->request(
            $method,
            $url,
            [
                'auth' => [
                    null,
                    $api_key
                ],
            ]
        );
        

        【讨论】:

        • 变量赋值不正确,你有 'auth' = [
        【解决方案4】:
        use GuzzleHttp\Client;
        

        ...

        $client = new Client(['auth' => [$username, $password]]);
        $res = $client->request('GET', 'url', ['query' => ['param1'=>$p1, 'param2'=>'sometext']]);
        $res->getStatusCode();
        $response = $res->getBody();
        

        这将创建一个授权客户端并发送一个获取请求以及所需的参数

        【讨论】:

          猜你喜欢
          • 2018-05-04
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          • 2020-10-11
          • 2018-11-25
          • 2012-05-02
          • 2015-01-27
          • 2017-02-15
          相关资源
          最近更新 更多