PHP的新pecl_http扩展(版本2)

时间:2014-01-05 20:59:28

标签: php

我刚看到有一个新版本的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请求到网站。

4 个答案:

答案 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());
}
?>

http://devel-m6w6.rhcloud.com/mdref/http/Client/once

答案 3 :(得分:1)

如果您使用的是redhat install curl-dev,然后再次卸载并安装pecl_http。

sudo yum install curl-devel

希望这有助于某人。