2017-04-17 3 views
2

Ich habe einen sehr langen curl Befehl im Terminal auszulösen,Curl-Argument-Liste ist zu lang Fehler

jedoch Ich schlage einen Fehler,

„Argumentliste zu lang ist“

Dies ist die Beispielabfrage, ich bin die sehr lange Auseinandersetzung um 6MB ersetzt mit dem Wort „sehr langer Parameter“ (wenn ich es in eine Datei speichern):

curl -H „Authorization: Bearer eyJhbGciOiJSUzI1NiIsImp3ayI6eyJrdHkiOiJSU0EiLCJlIjoiQVFBQiIsImtpZCI6ImFkbWluIiwibiI6IkFNMERkN3hBZHY2SC15Z0w3cjhxQ0xkRS0zSTJrazQ1emdadERkX3FzOGZ2bllmZGlxVFNWNF8ydDZPR0c4Q1Y1Q2U0MVBNcEl3bUw0MTBYOUlabnZoeG9ZaUZjTVNhT2VJcW9lLXJKQTB1WnV3MnJIaFhaM1dWQ2VLZXpSVmNDT1lzUU4tbVFLMG1mejVfM28tZXYwVVl3WGtTT3dCQmwxRWhxSXdWRHdPaWVnMkpNR2wwRVhzUFpma05aSS1IVTRvTWlpLVRyTkx6UldrTW1Mdm0wOWhMNXpvc1VOQTE1dmVDS3BoMldwbVNtMlM2MW5EaEg3Z0xFb3ltRG5URWpQWTVBb2gyaW5JLTM2UkdZVk1VVWJPNDZDck5VWXVJb2JPaVhsTHpCSWh1SUNwZlZkeFRfeDdzdEtYNUM5QmZNVEI0R2tPSFA1Y1V2N056MWREaElQdTg9In19.eyJpc3MiOiJjb20uaWJtLm1mcCIsInN1YiI6ImFkbWluIiwiYXVkIjoiY29tLmlibS5tZnAiLCJleHAiOjE0ODQwMzA1OTM2MDAsInNjb3BlIjoiREVGQVVMVF9TQ09QRSJ9.QDgYUHYTHp6WfPQj3TcpM3uuiPWG92Jm4ovuf1f_N27wzfnmvYzYpGerB09oLrjisboXhczN17H4in8Kx69kKCM-L80i5JovSsUehH7aryPc195wNiHp5HC4V856I1cDSf7A7tALiz0xdKWmAlk1gFBfcFFdtfbR1cIeXjS_KGht9jaNbNwapTy0nrtmWGMr_s-nJo2p-FRLXb-NnbmpQG85BXptbBuPQCn4qXtHPRz61y9BWA6Ag NpuTz9rVJyYux9yrtf9ONZtQ_GHWCJBe87Zm8bQLdDaMrCZKOnuVMT_upROfEaFvKwhdlWIM-CSY2whfe1yS3mv8AHBx11OtQ“ "http://localhost:9080/mfp/api/adapters/sendtextandPDF?params=[sehr langer Parameter]" -g

Wie dieses Problem zu mildern?

Antwort

1

Der Grund für diesen Fehler liegt darin, dass Ihr Betriebssystemkernel die Argumente begrenzt, die an einen Befehl übergeben werden können. Sie können es umgehen, indem Sie die URL in einer Konfigurationsdatei setzen, sagt config mit einer Zeile wie die folgenden

url = "http://localhost:9080/mfp/api/adapters/sendtextandPDF?params=[very long parameters]" 

Dann laufen curl Daten von dieser URL zu holen, indem Sie den Namen der Konfigurationsdatei angeben als Argument:

curl -K config -g 

Versuch 6 MB Daten über ein GET Anfrage spielt mit dem Feuer zu übergeben. Mehrere Teile des Bahnstapels können bei dieser Größe stolpern. Sie haben ein Problem mit curl, aber Sie können auch Probleme mit einem Zwischen-Proxy, einem Lastenausgleich, einem Anwendungsserver, der Webanforderungsanalyse-Bibliothek und der Anwendung selbst auftreten. Erwägen Sie stattdessen, die Daten mit einer PUSH Anfrage zu übergeben, die besser für große Übertragungen ausgelegt ist.

+0

10 wo sollte ich die "[sehr lange Parameter]" übergeben? – user1872384

+0

In der Konfigurationsdatei, in der Sie die URL angeben. Ich bearbeite die Antwort zur Klärung. –

+0

wo die -g Flag hinzufügen? – user1872384