我有一个非常长的curl命令要在终端中触发,
但是,我遇到了错误,
"参数列表太长"
这是示例查询,我将大约6MB的非常长的参数(如果我将其保存到文件中)替换为"非常长的参数":
卷曲-H"授权:承载eyJhbGciOiJSUzI1NiIsImp3ayI6eyJrdHkiOiJSU0EiLCJlIjoiQVFBQiIsImtpZCI6ImFkbWluIiwibiI6IkFNMERkN3hBZHY2SC15Z0w3cjhxQ0xkRS0zSTJrazQ1emdadERkX3FzOGZ2bllmZGlxVFNWNF8ydDZPR0c4Q1Y1Q2U0MVBNcEl3bUw0MTBYOUlabnZoeG9ZaUZjTVNhT2VJcW9lLXJKQTB1WnV3MnJIaFhaM1dWQ2VLZXpSVmNDT1lzUU4tbVFLMG1mejVfM28tZXYwVVl3WGtTT3dCQmwxRWhxSXdWRHdPaWVnMkpNR2wwRVhzUFpma05aSS1IVTRvTWlpLVRyTkx6UldrTW1Mdm0wOWhMNXpvc1VOQTE1dmVDS3BoMldwbVNtMlM2MW5EaEg3Z0xFb3ltRG5URWpQWTVBb2gyaW5JLTM2UkdZVk1VVWJPNDZDck5VWXVJb2JPaVhsTHpCSWh1SUNwZlZkeFRfeDdzdEtYNUM5QmZNVEI0R2tPSFA1Y1V2N056MWREaElQdTg9In19.eyJpc3MiOiJjb20uaWJtLm1mcCIsInN1YiI6ImFkbWluIiwiYXVkIjoiY29tLmlibS5tZnAiLCJleHAiOjE0ODQwMzA1OTM2MDAsInNjb3BlIjoiREVGQVVMVF9TQ09QRSJ9.QDgYUHYTHp6WfPQj3TcpM3uuiPWG92Jm4ovuf1f_N27wzfnmvYzYpGerB09oLrjisboXhczN17H4in8Kx69kKCM-L80i5JovSsUehH7aryPc195wNiHp5HC4V856I1cDSf7A7tALiz0xdKWmAlk1gFBfcFFdtfbR1cIeXjS_KGht9jaNbNwapTy0nrtmWGMr_s-nJo2p-FRLXb-NnbmpQG85BXptbBuPQCn4qXtHPRz61y9BWA6AgNpuTz9rVJyYux9yrtf9ONZtQ_GHWCJBe87Zm 8bQLdDaMrCZKOnuVMT_upROfEaFvKwhdlWIM-CSY2whfe1yS3mv8AHBx11OtQ" " http://localhost:9080/mfp/api/adapters/sendtextandPDF?params=[ 非常长的参数]" -g
如何缓解此问题?
答案 0 :(得分:1)
您看到此错误的原因是您的操作系统内核对可传递给命令的参数设置了限制。您可以通过将URL放在配置文件中来解决此问题,例如config
,其中包含以下行
url = "http://localhost:9080/mfp/api/adapters/sendtextandPDF?params=[very long parameters]"
然后,运行 curl ,通过将配置文件的名称指定为参数来从该URL获取数据:
curl -K config -g
尝试通过 GET 请求传递6MB数据正在玩火。网络堆栈的几个部分可以以这种尺寸阻止。您遇到了 curl 的问题,但您也可能遇到中间代理,负载均衡器,应用程序服务器,Web请求解析库和应用程序本身的问题。相反,请考虑使用 PUSH 请求传递数据,该请求更适合处理大型传输。
答案 1 :(得分:0)
你能不能从文本文件中卷入?
cat textfile.txt | curl
将你的旗帜添加到卷曲中,你应该好好去。
此外,您可能会发现此链接很有用。 https://unix.stackexchange.com/questions/174350/curl-argument-list-too-long