我只想用post参数创建一个httprequest.我用过这段代码
$r = new HttpRequest($url, HttpRequest::METH_POST);
$r->send();
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
ErrorException [致命错误]:类'HttpRequest'没有
我把extension=php_http.dll它添加到我的php.ini,但问题仍然存在.我下载了php_http.dll文件,并将其插入到php的ext文件夹中,但它已经存在,所以我更换了,仍然有同样的问题.
任何帮助,将不胜感激
如果您使用的是PHP 5.4或更高版本,那么您的扩展库中似乎没有要包含的php_http.dll文件(除非有人能找到我错过的文件?).
在更新php.ini配置文件以包含扩展名后,我唯一能够找到启动Apache服务器的错误.
但是不要害怕,因为似乎有一个GitHub项目在类中提供功能,而不是扩展.单击此处查找所需的课程.
如果你在项目中保存这个类并且这样调用;
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());
Run Code Online (Sandbox Code Playgroud)
如果做不到这一点,似乎唯一可行的选择就是在这里自己编译.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);
Run Code Online (Sandbox Code Playgroud)
更多的细节和更好的例子可以在PHP网站上找到这里
我希望这有助于回答你的问题,而不是给你更多......
您需要确保您php_http.dll的 PHP 版本匹配。您可以<?php phpinfo();检查是否加载了扩展(查找“http”,它会列出版本和可用类)。
如果扩展没有出现在 中phpinfo(),您应该检查您的日志以了解问题的来源或直接从命令提示符运行 PHP 二进制文件 — php -i。如果加载动态库时出现任何错误,它将显示在对话框中。请注意,即使扩展加载失败,PHP 仍将继续运行。