【问题标题】:get the value of an url response with curl使用 curl 获取 url 响应的值
【发布时间】:2010-01-04 20:11:00
【问题描述】:

我正在使用 PHP curl 方法来获取字符串类型的响应。要创建我使用的请求:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, $data);

$response = curl_exec($ch);
$err = curl_error($ch);

curl_close($ch);

if($response === false)
    throw new Exception(__CLASS__."::".__FUNCTION__."_".$err);
return $response;

为什么我总是收到 bool(true) 响应而不是我从对方回显的字符串?

谢谢

【问题讨论】:

  • 您所说的“真实”响应是什么意思? $response 是字符串“true”,还是布尔值 true?

标签: php curl


【解决方案1】:

因为你已经有了

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

在您的代码中。 curl_exec 应该已经返回页面内容而不是 BOOL。

这是我使用的库的 sn-p。正如所指出的,这可能不需要,但它帮助了我一次......

//The content - if true, will not download the contents
curl_setopt($ch, CURLOPT_NOBODY, false);

它似乎还有一些与 CURLOPT_NOBODY 相关的错误(这可能解释了您遇到此问题的原因):

【讨论】:

  • 他希望返回正文,CURLOPT_NOBODY 甚至不会下载正文。
  • 这就是它设置为 FALSE 的原因。如果设置为 TRUE,则不会下载任何内容,请在投票前仔细阅读!
  • 好吧,你是对的。不过,CURLOPT_NOBODY 的默认值为 false,因此无需设置它。另外,你应该解释你的答案——我什至不得不向右滚动你的代码,然后才能阅读该评论。
  • 太棒了!删除了我的反对票。显然无法投票,“除非编辑答案,否则无法更改投票”。呃……
  • 没问题。我只是希望我的答案/我们的 cmets 能帮助解决问题。
猜你喜欢
  • 2015-06-02
  • 2012-04-02
  • 1970-01-01
  • 2016-06-23
  • 2018-03-07
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
相关资源
最近更新 更多