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

Setting correct content type for cURL to receive a response

我正在尝试创建一个相对简单的 PHP 端点供用户向其发送请求。我知道端点正在运行,因为当我使用 cURL 访问它时,我添加了发送到数据库的参数。然而问题是当我使用

 var_dump($response);

页面 returns "NULL"。

代码运行良好,我只想知道如何打印 error/success 消息

这是我到目前为止在端点上尝试过的方法

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"?

通过测试 return 测试您的 curl 代码是否有问题:var_dump($resp)。看起来 NULL 来自 json_decode。您没有从端点 returning 有效 JSON。

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

尝试 returning json 字符串,例如:

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

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

您的 curl 代码似乎是正确的。