Ich habe viele Beispiele für die Verwendung einfacher POST-Befehle in cURL gefunden, aber keine Beispiele für das Senden vollständiger HTTP-POST-Befehle, die Folgendes enthalten:
- Header (Standardauthentifizierung)
- HTTP-Parameter (
s=1&r=33
) - Body Data, eine XML-Zeichenfolge
Alles was ich gefunden habe ist:
echo "this is body" | curl -d "ss=ss&qq=11" http://localhost/
Das funktioniert nicht und sendet die HTTP-Parameter als Body.
--header
und dies nichtAntworten:
Nicht genug Ruf, um einen Kommentar abzugeben. Lassen Sie dies als Antwort, in der Hoffnung, dass es hilft.
Dies habe ich für eine S3-Bucket-Acl-Put-Operation verwendet. Die Header sind in -H und der Body, der eine XML-Datei ist, befindet sich in $ {aclfile} nach -T. Das sehen Sie an der Ausgabe:
Wenn URL-Parameter Sonderzeichen wie "+" enthalten, verwenden Sie --data-urlencode für jeden Parameter (der Sonderzeichen enthält):
quelle
HTTP "Parameter" sind Teil der URL:
Die Standardauthentifizierung hat eine separate Option. Es ist nicht erforderlich, einen benutzerdefinierten Header zu erstellen:
Der POST "body" kann entweder
--data
(fürapplication/x-www-form-urlencoded
) oder--form
(fürmultipart/form-data
) gesendet werden :Also, um zusammenzufassen:
quelle