为 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 代码似乎是正确的。
我正在尝试创建一个相对简单的 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 代码似乎是正确的。