【问题标题】:Post data and retrieve the response using PHP Curl?使用 PHP Curl 发布数据并检索响应?
【发布时间】:2011-06-24 05:43:55
【问题描述】:
我对使用 Web 服务非常陌生,所以我觉得这很令人困惑。
如果我有一个 URL,我正在尝试向其发布一些 JSON 数据,我了解如何使用 CURL PHP 方法执行此操作。
我想知道的是,如果我这样做,并且 URL 有某种服务器响应.. 我如何在我的 php 中获取该响应并使用它在 PHP 中相应地采取不同的操作?
谢谢!
-艾略特
【问题讨论】:
标签:
php
post
curl
webservice-client
【解决方案1】:
您必须将 CURLOPT_RETURNTRANSFER 选项设置为 true。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
您的请求的响应将在 $result 变量中提供。
【解决方案2】:
如果您指的是针对不同 HTTP 响应代码的不同操作,那么您可以执行以下操作:
$response = curl_exec($req);
$responseInfo = curl_getinfo($req);
$httpResponseCode = $responseInfo['http_code'];
【解决方案3】:
Curl 的默认行为是将获取的数据转储到浏览器。为了将其捕获到变量中,您需要:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$txResult = curl_exec($ch);
你也可以在这个 $txResult 上使用parse_string 来正确格式化它。