【问题标题】:cURL timeout with 0 bytes received收到 0 个字节的 cURL 超时
【发布时间】:2019-06-28 00:19:37
【问题描述】:

我目前正在使用 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");
}

?>

【问题讨论】:

    标签: php curl


    【解决方案1】:

    您是否尝试过不使用此行:CURLOPT_TIMEOUT =&gt; 100,?我知道 100 秒是很多时间,但是如果您尝试以慢速连接发送大文件,它可能会超时。

    【讨论】:

    • 这应该是一条评论。
    • 我知道,但对我来说,没有 50 点声望点,我无法编写 cmets :|
    • 当我尝试这个时,我得到了 PHP 错误:致命错误:C:\wamp64\www\4pjt\test.php 中超过 120 秒的最大执行时间我认为得到“0 字节”很奇怪收到”没有?我尝试发送 2.02Ko 的简单图像
    【解决方案2】:

    请删除 Postman 代码生成器生成的任何内容长度参数、postman-token 和 cookie 参数,因为它特定于您通过 potsman 发出的请求。这样做应该允许您的输入作为其自己的特定请求。

    删除

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

    【讨论】:

      猜你喜欢
      • 2017-10-28
      • 2021-07-04
      • 2020-09-07
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      相关资源
      最近更新 更多