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


Setting correct content type for cURL to receive a response

我正在尝试创建一个相对简单的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"呢?

测试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规范。最佳实践是,如果返回json,则通过json_encode()运行内容。

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