为cURL设置正确的内容类型以接收响应

时间:2016-09-26 11:57:10

标签: php curl api-design

我试图为用户发送请求创建一个相对简单的PHP端点。我知道端点正在工作,因为当我使用cURL访问它时,我发送到我的数据库的参数我们已经添加了。但问题是,当我使用

 var_dump($response);

页面返回" NULL"。

所以代码工作正常,我只想知道如何打印错误/成功消息

这是我到目前为止在端点上尝试的内容

header("HTTP/1.1 200 OK"); 
header('Content-Type: text/plain'); 
echo 'Success message';

完整的cURL代码:

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $url,
    CURLOPT_POSTFIELDS => 'example=this'
);
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);
$response = json_decode($resp, true);
var_dump($response);

那么如何才能正确显示成功消息而不是" NULL"?

1 个答案:

答案 0 :(得分:0)

测试你的curl代码是否通过测试返回一些内容:var_dump($resp)。看起来NULL来自json_decode。您没有从端点返回有效的JSON。

php > var_dump(json_decode("Success message", true));
NULL

尝试返回json字符串,例如:

php > echo json_encode("Success", true);
"Success"

请注意它周围的"。这编码一个json字符串。有关如何编码json的参考,请参阅JSON spec。最佳做法,如果您返回json,则通过json_encode()运行您的内容。

你的卷曲代码似乎是正确的。