Yii 具有基本身份验证和代理设置的Yi2 httpclient

Yii 具有基本身份验证和代理设置的Yi2 httpclient,yii,proxy,yii2,basic-authentication,Yii,Proxy,Yii2,Basic Authentication,在我的Yi2应用程序中,我尝试从RESTAPI读取数据,RESTAPI受HTTP Basic-Auth保护。另外,需要一个代理来连接RESTAPI。 因此,我选择Yii httpclient模块来处理此调用: $client = new Client(['baseUrl' => 'http://my.example.com']); $response = $client->createRequest() ->setMethod('get') -&

在我的Yi2应用程序中,我尝试从RESTAPI读取数据,RESTAPI受HTTP Basic-Auth保护。另外,需要一个代理来连接RESTAPI。 因此,我选择Yii httpclient模块来处理此调用:

$client = new Client(['baseUrl' => 'http://my.example.com']);
$response = $client->createRequest()
        ->setMethod('get')
        ->setUrl('api/session')
        ->addHeaders(['Authorization' => 'Basic '.base64_encode("user:password")])
        ->setOptions([
            'proxy' => 'proxy.server:8000',
            'timeout' => 5, 
        ]);
运行此代码时,我在代理请求中收到一条
错误URL
错误消息。 但是,如果我将URL从代码复制到浏览器(也连接到代理),一切都会正常工作:基本的Auth窗口会出现


设置标题的
授权
标记时是否有错误?

在解决此问题一天后,在中找到了答案。在问了我的问题一分钟后,我想把这个问题保留下来,因为有人也有同样的问题

答复: yii2 httpclient使用两个不同的传输库:(该库没有额外的PHP扩展,设置为默认)和cURL

切换到cURL作为“传输类型”,上面的代码运行良好

$this->client = new Client([
            'baseUrl' => 'http://my.example.com',
            'transport' => 'yii\httpclient\CurlTransport'])