在 php 中找不到 HttpRequest

2022-08-30 23:34:14

我只想用帖子参数做一个httprequest。我用了这个代码

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

但我得到这个错误:

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

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

任何帮助将不胜感激


答案 1

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

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

但是,不要担心,因为似乎有一个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());

如果做不到这一点,似乎唯一其他可行的选择就是从源代码编译.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网站上找到 这里

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


答案 2

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

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


推荐