【发布时间】:2017-12-06 13:22:51
【问题描述】:
我正在使用 PHP curl 进行发布,由于某种原因,我无法成功发布表单。
$ch = curl_init();
$headers = [
'x-api-key: XXXXXX',
'Content-Type: text/plain'
];
$postData = array (
'data1: value1',
'data2: value2'
);
curl_setopt($ch, CURLOPT_URL,"XXXXXX");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch);
当我尝试在帖子中使用相同的内容时,它可以工作,但不适用于 PHP。
var_dump($server_output) ==> string(67) ""require data1 and data2 or check the post parameters""
var_dump(curl_error($ch)) ==> string(0) ""
【问题讨论】:
-
var_dump($server_output)和var_dump(curl_error($ch))给你什么? -
如果你发送
text/plain,$postData应该是一个字符串,而不是一个数组。 -
我建议您检查此答案stackoverflow.com/a/13596901/1970395,因为它也适用于您的情况。你应该从你的数组中构建帖子字符串,而不是传递一个数组。
-
Json 在发送前对您的 $postData 进行编码。
-
您确定 API 需要纯文本的参数吗?大多数使用 url 编码或 JSON。