Ich verwende das Befehlszeilenprogramm cURL, um HTTP-POST an einen Webdienst zu senden. Ich möchte den Inhalt einer Datei als Hauptentität des POST einfügen. Ich habe versucht, -d </path/to/filename>
sowie andere Varianten mit Typinformationen wie --data </path/to/filename> --data-urlencode </path/to/filename>
etc ... zu verwenden. Die Datei ist immer angehängt. Ich brauche es als Körpereinheit.
207
cat file.txt | curl --data "@-" `(< url.txt )`
@-
Curl an, von stdin zu lesen. Sie können auch einfach die Umleitung verwenden(< x.txt )
, um das einzugeben , was Sie möchten. Wenn Sie Bash verwenden.--data-binary
anstelle von--data
.name:value
Paare wie einen Benutzernamen und ein Kennwort verwenden, fügen Sie die erforderlichen Header hinzu, die den Erwartungen des Dienstes entsprechen:--header: "<header_name>:<header_value>"
als einzelne Zeichenfolge.Ich weiß, dass die Frage beantwortet wurde, aber in meinem Fall habe ich versucht, den Inhalt einer Textdatei an die Slack Webhook- API zu senden, und aus irgendeinem Grund hat die obige Antwort nicht funktioniert. Egal, das hat mir endlich den Trick getan:
quelle
curl: argument list too long
In diesem Fall ist die akzeptierte Antwort Lebensrettercurl --data "@/path/to/filename" http://...