无法解决 http 请求致命错误

Posted

技术标签:

【中文标题】无法解决 http 请求致命错误【英文标题】:cant resolve httprequest fatal error 【发布时间】:2014-05-04 09:37:23 【问题描述】:

我正在尝试在 php 中创建服务器端页面,我必须通过 http 请求从某个网站获得响应。 我收到错误 HttpRequest not found。 试图修复这个错误我能够找到用于 http 请求的 php_http.dll 文件。我已将它添加到 php 扩展文件夹 /ext 现在我也可以在扩展列表中看到它。 但问题是我仍然有同样的错误...... 现在我明白的是,可能是 php_http 文件版本较旧.. 我有 php 5.4.16 32bit,我能找到的最高版本 dll 文件是 5.3 我在哪里可以找到兼容的版本。 或者告诉我我是否已经做错了什么......

$r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_POST);

这是我正在努力消除错误的代码行

【问题讨论】:

【参考方案1】:

在php中使用cURL

<?php
// A very simple PHP example that sends a HTTP POST to a remote site
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://example.com/feed.rss");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"postvar1=value1&postvar2=value2");

// in real life you should use something like:
// curl_setopt($ch, CURLOPT_POSTFIELDS, 
//          http_build_query(array('postvar1' => 'value1')));

// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);

// further processing ....
if ($server_output == "OK")  ...  else  ... 

?>

更多信息请看PHP Difference between Curl and HttpRequest

【讨论】:

我试过你的方法它给未定义函数 curl_init() 的调用错误 是的,你必须启用 curl 默认情况下它没有启用看到这个***.com/questions/1347146/… 或者如果你使用 wamp,点击任务栏上的 wamp 图标 => 然后点击 PHP =>php 扩展=> php_curl 我现在遇到了另一个问题...最终将此地址更改为 youtube.com 而不是 example.com什么都没有。。它是空白的。应该假设发生了吗? 那是因为 youtube 不允许你提出这个请求,代码没问题【参考方案2】:

我不会为此使用 HttpRequest。我会简单地使用 curl_init()。但是,您需要确保您的机器中安装了 php-curl 库。

【讨论】:

看起来我没有你说的那个库......我怎么能安装那个库 如果是 Ubuntu 或基于 Debian 的 linux,我会执行 sudo apt-get install php5-curl 。如果使用Windows,请查看this

以上是关于无法解决 http 请求致命错误的主要内容,如果未能解决你的问题,请参考以下文章

硬盘提示无法访问设备硬件出现致命错误,导致请求失败,里面的数据如何找到

移动磁盘显示无法访问设备硬件出现致命错误,导致请求失败的文件恢复方案

无法访问移动磁盘显示设备硬件出现致命错误,导致请求失败的数据找到法子

如何解决致命错误:无法重新声明 view()(之前声明过?(phpunit laravel 5.3)

如何解决 LINK:致命错误 LNK1181:无法打开输入文件 'vtkCommonCore-9.0.lib'

致命错误:无法比较属于不同集合的索引: