首页 > 解决方案 > 获取:cURL 错误 #:操作在 30000 毫秒后超时,POST 请求收到 0 个字节(PHP)

问题描述

我正在尝试向此 url 发出 POST 请求:https://www.googleapis.com/admin/directory/v1/customer/***/orgunits以创建新的组织单位。

这是发出 cURL 请求的代码:

    function exeCurl($url,$method,$body="") {
 $curl = curl_init();


curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 40,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => $method,
    CURLOPT_HTTPHEADER => array(
    //    "Accept: */*",
    //    "Accept-Encoding: gzip, deflate",
        "Authorization: Bearer ". $_COOKIE["LOStoken"],
     //   "Cache-Control: no-cache",
         "Content-Type: application/json",
        //"Connection: keep-alive",
        "Content-Length: ". strlen($body),
       // "Host: www.googleapis.com",

       // "cache-control: no-cache"
    ),
));

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

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}

}

我玩过启用/禁用几个标题但没有成功。这是对 exeCurl 的调用:

 function createOU($createOUname, $parentOUpath, $description) {

    echo $createOUname;
    echo $parentOUpath;
    echo $description;
    $body = array(
        "name" => $createOUname,
        "description" => $description,
        "parentOrgUnitPath" => $parentOUpath
    );

    $ou = new \Google\OU();

    echo $ou->exeCurl("https://www.googleapis.com/admin/directory/v1/customer/***/orgunits","POST",json_encode($body));

}

(其中 *** 是我的客户 ID)

它获取 Html 输入字段的值。

我无法弄清楚为什么它不起作用。我也尝试将 timout 设置为 0。我尝试向 Postman 发出具有相同值的 POST 请求,并且它在那里工作。

标签: phpcurlpostouttimed

解决方案


推荐阅读