我刚看到有一个新版本的pecl_http扩展可用,请参阅the documentation。它带来了一个新的界面,与旧的扩展没有相似之处,所以我想问一下有没有关于如何使扩展工作的例子?我也安装了它和raphf和propro的要求。但即使是简单的
$client = new http\Client();
给我一个致命的错误
Uncaught exception 'http\Exception\UnexpectedValueException' with message 'Failed to locate "(null)" client request handler' in
同样适用于
$client = new http\Client('curl');
只有Failed to locate "curl"
。
我想看一个http \ Client实例化的实例和一个简单的GET请求到网站。
答案 0 :(得分:7)
我在debian上遇到了这个问题。
安装curl的nss版本有什么帮助:
apt-get install libcurl4-nss-dev
然后重新安装pecl_http
,并在询问libcurl时提供以下路径
/usr/lib/x86_64-linux-gnu/libcurl.so
答案 1 :(得分:3)
这是一个很酷的要点,名为Using version 2 of PECL HTTP extension (pecl_http)。我没有写这个,但它显示了一些如何使用版本2的好例子。
答案 2 :(得分:1)
请参阅文档:http://devel-m6w6.rhcloud.com/mdref/http/
示例:
<?php
$client = new http\Client;
$client->enqueue(new http\Client\Request("HEAD", "http://php.net"));
$client->enqueue(new http\Client\Request("HEAD", "http://pecl.php.net"));
$client->enqueue(new http\Client\Request("HEAD", "http://pear.php.net"));
printf("Transfers ongoing");
while ($client->once()) {
// do something else here while the network transfers are busy
printf(".");
// and then call http\Client::wait() to wait for new input
$client->wait();
}
printf("\n");
while ($res = $client->getResponse()) {
printf("%s returned %d\n", $res->getTransferInfo("effective_url"),
$res->getResponseCode());
}
?>
答案 3 :(得分:1)
如果您使用的是redhat install curl-dev,然后再次卸载并安装pecl_http。
sudo yum install curl-devel
希望这有助于某人。