Yii 具有基本身份验证和代理设置的Yi2 httpclient
在我的Yi2应用程序中,我尝试从RESTAPI读取数据,RESTAPI受HTTP Basic-Auth保护。另外,需要一个代理来连接RESTAPI。 因此,我选择Yii 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') -&
$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'])