在PHP中找不到HttpRequest

时间:2013-09-02 19:06:01

标签: php httprequest

我只想用post参数制作一个httprequest。我用过这段代码

$r = new HttpRequest($url, HttpRequest::METH_POST);
$r->send();

但是我收到了这个错误:

  

ErrorException [致命错误]:类'HttpRequest'不是

我将extension=php_http.dll添加到我的php.ini中,但问题仍然存在。 我下载了php_http.dll文件,并将其插入到php的ext文件夹中,但它已经存在,所以我更换了,仍然有同样的问题。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:7)

如果您使用的是PHP 5.4或更高版本,那么您的扩展库中似乎没有要包含的php_http.dll文件(除非有人能找到我错过的文件?)。

在更新php.ini配置文件以包含扩展名后,我唯一能够找到启动Apache服务器的错误。

然而,并不担心,因为似乎有一个GitHub项目在类中提供功能,而不是扩展。 Click here to find the required class

如果您在项目中保存此类并按此调用;

include_once('HttpRequest.php'); //where HttpRequest.php is the saved file
$url= 'http://www.google.com/';
$r = new HttpRequest($url, "POST");
var_dump($r->send());

如果做不到这一点,似乎唯一可行的选择是从源here自己编译.dll :(

否则,另一种选择是使用cURL。 cURL提供httpRequest的大多数(如果不是全部)功能。

一个简单的例子就是;

$url = "http://www.google.com/";        
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, TRUE); 
curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body 
$head = curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
var_dump($head);

更多细节和更好的例子可以在php网站Here

找到

我希望这有助于回答你的问题,而不是给你留下更多......

答案 1 :(得分:4)

您需要确保拥有与您的PHP版本相匹配的php_http.dll。您可以<?php phpinfo();检查是否加载了扩展名(查找“http”,它将列出版本和可用类)。

如果扩展名未显示在phpinfo()中,则应检查日志以了解问题的来源或直接从命令提示符运行PHP二进制文件 - php -i。如果加载动态库时出现任何错误,它将显示在对话框中。请注意,即使扩展无法加载,PHP仍将继续运行。

答案 2 :(得分:4)

您可以重新安装软件包

$ pecl install -f pecl_http-1.7.6

或使用像this snippet

这样的curl访问数据