我已经获得了一个在Postman上运行完美的API的连接,它返回一个显示我们刚刚发送的内容的Json,在这个例子中它返回{" id":9}。 /> 但是,当我使用Postman生成的cURL代码时,它总是不会为相同的数据返回任何内容。
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://us-central1-mitocondria-856e6.cloudfunctions.net/api/createUser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"id\":9}",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer XXXX",
"Cache-Control: no-cache",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
上面的代码没有返回任何内容。
var_dump($response)
返回NULL
var_dump($err)
返回字符串(0)&#34;&#34;
并print_r(curl_getinfo($curl))
返回
Array ( [url] => https://us-central1-mitocondria-856e6.cloudfunctions.net/api/createUser/ [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => [certinfo] => Array ( ) [primary_port] => 0 [local_ip] => [local_port] => 0 )
我还用json_encode( array("id" => 8) )
更改了原始json数据并得到了相同的结果
我还应该尝试什么?或者我错过了一个错误?请帮忙!
答案 0 :(得分:0)
1-请注意你的&#39;,&#39;在curl数组的最后一个参数中。
2-请尝试添加
CURLOPT_POST=> 1, // Means you have post data
CURLOPT_POSTFIELDS => $curl_data
&#39;
答案 1 :(得分:0)
这是一个愚蠢的错误,它与代码无关 我检查的第一件事是PHP安装了cURL模块,但是我没注意到它在php.ini上被禁用了,所以错误显示在我没有检查的唯一日志中,apache error.log。<登记/> 模块启用后,它就像一个咒语一样 谢谢所有试图帮助我的人。