接收到0字节的cURL超时

时间:2018-04-11 13:37:11

标签: php curl

我目前正在使用PHP / cURL将文件发送到我的API。我使用Postman,结果很成功。然后,我使用Postman代码生成器来获取cURL请求,但是当我将其放入PHP页面时,返回

  

cURL错误#:操作在100000毫秒后超时并收到0字节“。

我查看了许多不同的论坛,但我没有找到任何可操作的解决方案。 (该代码已由Postman自动生成,此解决方案适用于API的其他部分,如注册,登录......)

有人可以帮我解决这个问题吗?

    <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "3000",
  CURLOPT_URL => "http://XXXXXXXXXX:3000/api/StorageAgent/uploadFile",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 100,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"path_ftp\"\r\n\r\n./\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\\uploads\\2.png\"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache",
    "Content-Type: application/x-www-form-urlencoded",
    "Postman-Token: 9e868801-b05e-4161-9d94-63b52e6f7b28",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    "x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVhN2RhNjE3N2M0Mzg5MjliYmQ0OWI4OSIsImFkbWluIjpmYWxzZSwiaWF0IjoxNTIzNDUxMzUxLCJleHAiOjE1MjM1Mzc3NTF9.jljyezECyjI0Z-RM-CttjSnYHh56rJdxzZJGh-TtwgQ"
  ),
));

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

curl_close($curl);

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

?>

2 个答案:

答案 0 :(得分:0)

你是否尝试过这一行:CURLOPT_TIMEOUT => 100,?我知道100秒是很多时间,但如果你尝试发送连接速度慢的大文件,它可能会超时。

答案 1 :(得分:0)

请删除任何由邮递员代码生成器生成的内容长度参数,邮递员令牌,cookie参数,因为它是针对您通过Potsman发出的请求而特定的。这样做可以使您的输入内容可以作为自己的特定请求。

删除

"Postman-Token: 9e868801-b05e-4161-9d94-63b52e6f7b28",