2

guzzlehttp/guzzle v.6.*以前に、次のような認証パラメーターを使用してパッケージを正常に使用しました。

        $client = new GuzzleClient([
            'base_uri'  => $base_uri ,
            'auth'      => [ $username, $password ]
        ]);

これはうまくいきます。ただし、"guzzlehttp/guzzle-services": "0.5.*"API エンドポイントの操作を簡単にするために、パッケージを使用しようとしています。

guzzle-services の Githubページから次の例を使用します。

use GuzzleHttp\Client;
use GuzzleHttp\Command\Guzzle\GuzzleClient;
use GuzzleHttp\Command\Guzzle\Description;

$client = new Client();
$description = new Description([
    'baseUrl' => 'http://httpbin.org/',
    'operations' => [
        'testing' => [
            'httpMethod' => 'GET',
            'uri' => '/get/{foo}',
            'responseModel' => 'getResponse',
            'parameters' => [
                'foo' => [
                    'type' => 'string',
                    'location' => 'uri'
                ],
                'bar' => [
                    'type' => 'string',
                    'location' => 'query'
                ]
            ]
        ]
    ],
    'models' => [
        'getResponse' => [
            'type' => 'object',
            'additionalProperties' => [
                'location' => 'json'
            ]
        ]
    ]
]);

$guzzleClient = new GuzzleClient($client, $description);
$result = $guzzleClient->testing(['foo' => 'bar']);

"guzzlehttp/guzzle-services": "0.5.*"パッケージを使用するときに、世界のどこでどのように認証パラメーターを追加すればよいですか?

私は可能な限りあらゆる方法を試しましたが、それを機能させることはできません。

4

2 に答える 2

1

次のコードを使用して、Guzzle 6.2.2 と Guzzle Services 1.0.0 を Basic 認証で使用することに成功しました。

$config['auth'] = array('user', 'pass');
$client = new Client($config);

もちろん、他の設定が必要な場合もありますが、基本認証の場合はこれだけが必要です。クラス メソッドをチェックしてGuzzleHttp\Client::applyOptions、Guzzle がこの設定をいつ使用するかを確認します。

@revo answer に非常に似ていますが、メインの「デフォルト」配列はありません。

これらは私のガズルでインストールされたパッケージです:

"
gimler/guzzle-description-loader     v0.0.2  Load guzzle service description from various file formats
guzzlehttp/command                   1.0.0   Provides the foundation for building command-based web service clients
guzzlehttp/guzzle                    6.2.2   Guzzle is a PHP HTTP client library
guzzlehttp/guzzle-services           1.0.0   Provides an implementation of the Guzzle Command library that uses Guzzle service descriptions to describe web services, se...
guzzlehttp/promises                  1.3.0   Guzzle promises library
guzzlehttp/psr7                      1.3.1   PSR-7 message implementation
"
于 2016-12-19T19:43:02.013 に答える
0

Descriptionクラスが認証情報をリクエストにマージする方法を提供するかどうかは疑問です。Clientただし、次のように Guzzle v5.xで new をインスタンス化するときにそれらを追加できます。

$client = new Client(['defaults' => ['auth' => ['user', 'pass']]]);
于 2016-07-14T08:40:27.350 に答える