PHP cURL(Postman on Postman)没有返回任何内容

时间:2018-03-07 13:55:44

标签: php curl

我已经获得了一个在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数据并得到了相同的结果 我还应该尝试什么?或者我错过了一个错误?请帮忙!

2 个答案:

答案 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。<登记/> 模块启用后,它就像一个咒语一样 谢谢所有试图帮助我的人。