卷曲PHP JSON总是返回一个错误的反应
我需要您的帮助检查什么错我的代码。 我曾试图发布从邮递员JSON数据,并将其returnen正确的响应。 但下面的代码总是返回错误的响应。卷曲PHP JSON总是返回一个错误的反应
<?php
$data_login = array('email'=>'[email protected]','password'=>'hahaha','confirmation_password'=>'hahaha');
$api_data = json_encode($data_login);
$api_url = 'http://dev.badr.co.id/freedom/auth/register';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $api_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
错误的反应:
{"success":false,"message":"1000: Not a valid request"}
正确的响应:
{
"success": true,
"message": "user registration success",
"data": null
}
这返回正确的响应,如果我使用邮递员发布数据:
如果curl_exec()
正在恢复false
这意味着该请求被莫名其妙地失败。
您可以通过使用curl_error()
function来计算出如何操作。叫它curl_exec()
和curl_close()
之间,它会返回与上出了什么问题与请求信息的字符串。
当我尝试添加curl_error($ ch)时没有任何回报 – kartaterazu
检查初始化和执行cURL函数的返回值。 curl_error()和curl_errno()将包含在故障情况下的进一步信息:
try {
$data_login = array('email'=>'[email protected]','password'=>'hahaha','confirmation_password'=>'hahaha');
$api_data = json_encode($data_login);
$api_url = 'http://dev.badr.co.id/freedom/auth/register';
$ch = curl_init();
if (FALSE === $ch)
throw new Exception('failed to initialize');
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $api_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if (FALSE === $result)
throw new Exception(curl_error($ch), curl_errno($ch));
} catch(Exception $e) {
echo sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage());
}
此代码返回空白页 – kartaterazu
@krishnaraj,而不是通过trigger_error代理异常,为什么不直接输出此演示/示例的curl_error?虽然已经测试了代码,但代码对我来说不会出错。我得到一个JSON响应。 – Progrock
@kartaterazu可以在php.ini或您的Apache配置文件中关闭显示错误。您可以在脚本中打开它: 的error_reporting(E_ALL); ini_set('display_errors',1); 您应该在PHP错误日志中看到相同的消息。 – krishnaraj
没有API的细节 - 端点所期待的 - 我怀疑我们是否会多大帮助。 – Progrock
它说:'{“success”:false,“message”:“1000:不是一个有效的请求”}'这意味着你没有使用它API的告知方式 –
我在api中运行CLI curl示例文档并得到相同的回应:'{“success”:false,“message”:“1000:不是有效的请求”}'。我不知道这是否是一个工作终点。从透过网站我甚至无法计算出Postman或Freedom Php是什么。 – Progrock