发送.tar.gz文件时出现Curl错误56“从对等方接收数据时失败”

18

我对这个CURL调用有问题:

curl -X POST \
     --data-binary '@File01.tar.gz' \
     http://website.intra.prova.it/gore-orgac/PINGU/TEST/lots/Test_017/content/files/File02.tar.gz

我收到了以下错误信息:

curl: (56) 与对等方通信接收数据时失败

但如果我使用以下 CURL 命令:

curl -X POST \
     --data-binary '@File01.tar.gz' \
     http://website.intra.prova.it/gore-orgac/PINGU/TEST/lots/Test_017/content/files/File02

它工作得很好。

为什么呢?

4个回答

21

cURl错误56可能有不同的原因,例如:

  1. 将要上传的数据放在URL中而不是使用POST请求
  2. 可能是代理阻止了向服务器发出的请求。
  3. 在某些情况下,服务器不支持特定的请求,例如一些服务器支持PUT/POST其中之一。

上次我收到这个错误时,是因为代理阻止向服务器发出请求。

但在您的情况下,因为出现问题:

curl -X POST \
     --data-binary '@File01.tar.gz' \
     http://website.intra.prova.it/gore-orgac/PINGU/TEST/lots/Test_017/content/files/File02.tar.gz

你已经在URL本身中添加了要POST的文件,但这个位置实际上在服务器上是不存在的。

可能有很多原因,我很久以前在使用cURL命令行时也遇到过类似情况。


有没有办法获取更详细的日志,以便我们可以了解错误的根本原因。 - user7693832
使用curl -v可以查看更多有关正在发生的事情的信息。您还可以使用curl --trace-ascii <filename>进行所有传入和传出信息的文件转储。有关更多信息,请参见文档:https://curl.se/docs/manpage.html - Jesuisme

2
这是因为我的POST数据太大了。我正在执行以下操作:
curl -X POST localhost:9200/_bulk --data-binary @too-big.file

为解决问题,我将文件拆分成两部分:
split -l 150000 too-big.file

然后运行了2个POST请求:
curl -X POST localhost:9200/_bulk --data-binary @xaa
curl -X POST localhost:9200/_bulk --data-binary @xab

0
检查两端是否连接到安全或非安全服务器。

-3

我的问题与MediaWiki环境下的Parsoid服务/VisualEditor有关

sudo service parsoid restart

在我的情况下,这个命令解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接