您好我将JSON
数组与cURL
一起发布到我的API,
我在cURL
帖子中有以下代码:
$data_string = stripslashes($JSONData);
$ch = curl_init('http://api.webadress.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
它不会在API端存储/发布任何内容,并且$ results的返回结果不正确, 代码有什么问题?
来自JSON
:
{
"name": "test",
"type_id": "1",
"css": "#fb-iframe{}#fb-beforelike{}#fb-beforelike-blur{}",
"json": [
{
"Canvas": [
{
"Settings": {
"Page": {
"campaignName": "test"
}
},
"QuizModule": {
"Motivation": [],
"Questions": [],
"Submit_Fields": [
{
"label": "Name",
"name": "txtName",
"value": true
}
]
}
}
]
}
],
"user_id": "123"
}
答案 0 :(得分:1)
您的$data_string
可能不是field=value
对格式,因此您的$_POST
全局内无法解析任何内容。
由于您想阅读$_POST
全局:
content-type
$data_string
必须采用field=value
对格式以下是可行的(我完全省略了标题部分,你不应该设置content-type
):
$data_string = stripslashes($JSONData);
$ch = curl_init('http://api.webadress.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, array('JSONData'=>$data_string));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
另一方面,如果您想要在发送数据时访问数据,则不应尝试通过$_POST
读取数据,而应在服务器端使用:
$JSONData = file_get_contents("php://input");
答案 1 :(得分:0)