【问题标题】:Redirecting curl REST API Call to File Doesn't Work with Large Payload将 curl REST API 调用重定向到文件不适用于大负载
【发布时间】:2019-06-11 19:03:49
【问题描述】:

这可以正常工作并且可以毫无问题地写入文件:

curl -x myproxy.baseurl.com:80 -H "Authorization: Token mytoken" https://app.api.com/?status=Approved > output.txt

这会将输出发送到命令行并挂起,直到我点击 ctl-c:

curl -x myproxy.baseurl.com:80 -H "Authorization: Token mytoken" https://app.api.com/?status=Approved&page_size=100000 > output.txt

是否存在某种有效载荷大小限制?第一次调用中 JSON 响应的长度为 270,928 个字符。第二个,两个参数,调用的长度是622133。

可能是超时问题吗?使用 SoapUI 进行测试时,第一个负载大约需要 5 秒,第二个负载大约需要 11 秒。

更新:如果我在第二次通话中不使用 ctl-c,最终 curl 会超时:curl: (28) connect() timed out!

更新 2:FWIW,这是我正在编写的 shell 脚本的一部分,所以是的,这是一个编程问题。 :P

【问题讨论】:

  • curl 没有这样的限制,没有。不过,可能是 api 的限制
  • 您可能正在做某事。第二个参数可能会发生一些奇怪的事情。带有page_size 的调用会生成一个零大小的文件。我可以仅从时间戳判断它是一个新文件。

标签: linux rest curl file-io io-redirection


【解决方案1】:

确保引用您的 URL,因为 shell 正在解释 & 符号以将 curl 置于后台。

curl -x myproxy.baseurl.com:80 -H "Authorization: Token mytoken" "https://app.api.com/?status=Approved&page_size=100000" > output.txt

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多