【问题标题】:Curl stopped working all of a sudden卷曲突然停止工作
【发布时间】:2011-06-08 19:05:28
【问题描述】:

我正在处理一个项目,我使用 curl 从网站获取一些数据(更像是 API 调用)。两天前我检查了一切,一切正常,但昨天早上我突然开始收到错误:

遇到了 PHP 错误

严重性:警告

消息:DOMDocument::loadXML() [domdocument.loadxml]:作为输入提供的空字符串

文件名:controllers/user.php

我的代码是:

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data=curl_exec($ch);
curl_close($ch);
$doc = new DOMDocument();
$doc->loadXML($data);
$doc->save("test2.xml");

网址正确,因为 2 天前一切正常!

我目前正在使用 wamp 服务器,并且启用了 php_curl!

这是我要拨打的API!除了curl,还有其他方法可以发送请求和获取数据吗?

【问题讨论】:

  • 您的服务器发生了什么变化?您在共享主机系统上吗?也许他们执行了维护并更改了库或配置设置...检查phpinfo() 是否有任何看起来不同的内容。
  • 更可能是获取的网站发生了变化。它返回什么样的标头?
  • 我在 localhost 上进行测试,所以没有任何改变!
  • 网站没有任何变化。我刚刚重新检查了他们的 API,URI 模板是一样的。它是一个响应类型为 XML 的 GET 方法。
  • Saurabh:肯定发生了一些变化。如果什么都没有改变,它仍然可以工作。网址是什么?

标签: php curl


【解决方案1】:

作为替代尝试echo file_get_contents($url);

如果你做这样的事情,也看看你会得到什么:

$data=curl_exec($ch);
echo curl_error($ch);
echo "<br>";
$info = curl_getinfo($ch);
print_r($info);
curl_close($ch);

curl 信息和 curl 错误可能会让您对请求有所了解。

【讨论】:

  • 消息:file_get_contents() [function.file-get-contents]:找不到包装器“https” - 您在配置 PHP 时是否忘记启用它?
  • 这是API 我想打电话!除了 curl 之外,还有其他方法可以发送请求并获取数据吗?
  • 我启用了 openSSL,现在我有了 https 包装器,但现在我得到一个“打开流失败:HTTP 请求失败! HTTP/1.1 400 Bad Request' 错误!
  • @Saurabh .. curl 是获取数据的更简单方法,否则您将需要使用 fsockopen 等基本文件功能。尝试使用不同的 https URL,以确保一切正常(这似乎是在您启用 open ssl 之后),如果是这种情况,那么您需要检查 URL 和形成请求所需的参数网络服务器正在等待
猜你喜欢
  • 2017-08-22
  • 2021-02-01
  • 2016-12-29
  • 2018-05-09
  • 2015-12-07
  • 2015-08-23
  • 2014-02-05
  • 2013-09-06
相关资源
最近更新 更多