gpt4 book ai didi

zend-framework2 - zf2 : Zend Client and cUrl not working

转载 作者:行者123 更新时间:2023-12-02 05:20:48 25 4
gpt4 key购买 nike

$adapter = new \Zend\Http\Client\Adapter\Curl();

$client = new \Zend\Http\Client($url);
$client->setAdapter($adapter);
$client->setMethod('POST');
$adapter->setOptions(array(
'curloptions' => array(
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => "username:password",
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,

)
));
$client->send();

以上是我正在使用的片段,我正在关注这里的文档 http://framework.zend.com/manual/2.0/en/modules/zend.http.client.adapters.html

问题是,当我执行自己的 curl 函数调用时,它工作正常并且我得到了有效响应。但是当我使用 zend 约定时,我不断收到 401- 未授权。我使用的 curl 选项对于这两种方法都是相同的。

有什么建议吗?

最佳答案

由于 CURLOPT_POSTFIELDS 和 CURLOPT_POST 被 Curl.php 中的 invalidOverwritableCurlOptions 数组阻止,您要做的是在客户端设置参数。

像这样在 Zend/Http/Client 中使用 setParameterPost 方法:

    use Zend\Http\Client;
use Zend\Http\Client\Adapter\Curl;

//some post params
$postParams = array('per_page' => 25);

$adapter = new Curl();
// -- add your curl options here (excluding CURLOPT_POST and CURLOP_POSTFIELDS --

$client = new Client('https://example.com/somePage');
$client->setAdapter($adapter);
$client->setMethod('POST');
$client->setParameterPost($postParams);
$response = $client->send($client->getRequest());

//output the response
echo $response->getBody()."<br/>";

您甚至不需要创建一个 Request 对象,因为 Client 类无论如何都会创建一个。在上面的代码中,我只是检索客户端使用 getRequest 方法创建的那个,然后将其传递给发送方法。

关于zend-framework2 - zf2 : Zend Client and cUrl not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com