我使用带有SSL的cURL 7.50.3在我的应用程序上下载xml文件:
/usr/local/bin/curl -v -E /home/file.crt.pem --key /home/file.key.pem "https://www.myWebSite.com/file?type=interrogation&nom=10280502_20180905208.XML&doc=reponses&societeId=10000" --output /tmp/RESULT.XML
文件下载结束,没有错误,文件内容正确(正确的数据,正确的xml格式...),但是被截断了。 如果我尝试使用chrome或邮递员访问相同的URL并下载相同的文件,则可以获取整个文件。
很遗憾,我无法共享xml文件,因为它包含个人信息。
我尝试了一些大型文件,这些文件需要花费几分钟的时间来下载,而一些小文件却在一秒钟内被下载。
以下是小文件的cURL输出:
[5 bytes data]
< HTTP/1.1 200 OK
< Date: Mon, 01 Oct 2018 14:35:09 GMT
< Set-Cookie: JSESSIONID=3ADE96F2...; Path=/; Secure; HttpOnly
<
< Content-Disposition: attachment; filename=10280502_20180905208_RESULTATS.XML
< Content-Type:
< text/xml;charset=utf-8
< Content-Length: 5626406
< Vary: Accept-Encoding
< 0 5494k 0 0 0 0 0 0
--:--:-- --:--:-- --:--:-- 0{ [5 bytes data]
< 100 5494k 100 5494k 0 0 5208k 0 0:00:01 0:00:01
--:--:-- 5213k
< Connection #0 to host www.myWebSite.com left intact
为此,我得到一个5.6Mo文件,但我应该得到一个11.9Mo。
对于大文件,我收到一条消息:
{ [5 bytes data]
89 3432k 89 3069k 0 0 103k 0 0:00:33 0:00:29 0:00:04 0* TLSv1.2 (IN), TLS alert, Client hello (1):
{ [2 bytes data]
89 3432k 89 3069k 0 0 100k 0 0:00:34 0:00:30 0:00:04 0* transfer closed with 371709 bytes remaining to read
89 3432k 89 3069k 0 0 100k 0 0:00:34 0:00:30 0:00:04 0
* Closing connection 0
} [5 bytes data]
* TLSv1.2 (OUT), TLS alert, Client hello (1):
} [2 bytes data]
curl: (18) transfer closed with 371709 bytes remaining to read
关于我在做什么错的任何想法吗? 谢谢!
编辑:添加--ignore-content-length似乎可以解决问题,但是我不明白为什么。而且无论如何仍然不理解为什么这与导航器和邮递员一起使用,除非它们默认情况下都使用此选项