获取`POST请求需要一个Content-length头。 '在运行Curl代码时

我想通过此curl请求获取Auth2令牌:

define("CALLBACK_URL","http://localhost/los/index");
define("AUTH_URL","https://accounts.google.com/o/oauth2/auth");
define("accESS_TOKEN_URL","https://oauth2.googleapis.com/token");
 define("CLIENT_ID","**.apps.googleusercontent.com");
define("CLIENT_SECRET","**");
define("SCOPE","https://www.googleapis.com/auth/admin.directory.device.chromeos"); // optional


 function getToken(){
 $curl = curl_init();

 $params = array(
CURLOPT_URL =>  accESS_TOKEN_URL."?"
                ."code=".$code
                ."&grant_type=authorization_code"
                ."&client_id=". CLIENT_ID
                ."&client_secret=". CLIENT_SECRET
                ."&redirect_uri=". CALLBACK_URL,CURLOPT_RETURNTRANSFER => true,CURLOPT_MAXREDIRS => 10,CURLOPT_SSL_VERIFYPEER => false,CURLOPT_TIMEOUT => 30,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => "POST",CURLOPT_NOBODY => false,CURLOPT_HTTPHEADER => array(
  "cache-control: no-cache","content-type: application/x-www-form-urlencoded","accept: *","accept-encoding: gzip,deflate",),);

  curl_setopt_array($curl,$params);


   $response = curl_exec($curl);
 $err = curl_error($curl);
  echo $response;
  curl_close($curl);

  if ($err) {
   echo "cURL Error #01: " . $err;
       } else {
 $response = json_decode($response,true);    
    if(array_key_exists("access_token",$response)) return $response;
if(array_key_exists("error",$response)) echo $response["error_description"];
echo "cURL Error #02: Something went wrong! Please contact admin.";
  }
 }

但是,它给了我这个错误信息: POST requests require a Content-length header. That’s all we know.

我曾尝试删除URL中的换行符,但无法解决。 (我遵循了this教程) 我怎样才能解决这个问题?我需要手动放置content-length标头吗?

xy252510631 回答:获取`POST请求需要一个Content-length头。 '在运行Curl代码时

您需要将Content-Length标头添加到CURLOPT_HTTPHEADER数组中。

该值通常是主体的大小(以字节为单位)。由于您没有任何内容,因此建议您尝试将0用作值。

CURLOPT_HTTPHEADER => array(
  "cache-control: no-cache","content-type: application/x-www-form-urlencoded","accept: *","accept-encoding: gzip,deflate","Content-Length: 0"
)
本文链接:https://www.f2er.com/3159760.html

大家都在问