cURL Post request: get-response-und-status-code
Ich eine cURL
Anfrage mit:
PATCH=$(curl -i -F file=@$FILE -F path="${STORAGE_PATH}" -F name="${NAME}" -F description="${DESC}" "${SERVER}/api/patches")
Wenn die Antwort geht durch, und die Daten-Eigenschaft formatiert, dann PATCH
wäre ein JSON-von der Antwort.
Ich möchte auch, um die HTTP-response-code (wie 200, 422) in der gleichen Zeit, so kann ich bestätigen, dass der Prozess ging durch.
wie mache ich das? Ich will einfach nur, um eine Anzahl (wie 200).
- Vielleicht kann dies helfen, commandlinefu.com/commands/view/13818/...
- Und hier ist Beispiel mit netcat statt curl stackoverflow.com/a/2220768/1368752
- Dies ist nur, dass Sie mir den status code möchte ich, um den tatsächlichen server-Daten als Antwort (Bekommen die JSON-Daten UND den response-code)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden:
Es wird Ihnen sowohl der Antwort-code und Körper.
STATUS=$(echo $PATCH | tail -n 1)
speichert den status (Letzte Zeile) in der$STATUS
undBODY=$(echo $PATCH | sed '$d')
speichert der Körper (alles außer der letzten Zeile) in$BODY
.Früher habe ich in diesem post um mein problem zu lösen und dachte, ich würde teilen meiner Ergebnisse. Mein Ziel war es, erstellen Sie ein Skript, um sicherzustellen, dass meine accesstoken Endpunkt war die Arbeit. Also musste ich einen BEITRAG aufrufen und extrahieren Sie den response-code, hier war mein Ergebnis:
Erklärung
status=$({curlRequest})
speichern die Ausgabe in einer bash-variable-w
extrahieren Sie die status-Codes aus der response --H
konfiguriert den HTTP-header Anfrage--data
legt den payload-Daten, die ich POSTEN wollen (dieses flag setzt automatisch die Anforderung an POST-s
Stille Statusanzeige der Anfrage-o
dies wird extrahieren Sie die Reaktion von Körper und legen Sie es in eine Datei. Indem Sie den Wert auf/dev/null
die Ausgabe verworfen wirdDie wichtigsten Werte hier sind
-w
und-o
wenn Sie nur wollen, einen response-code. Entfernen Sie die-o
fahne zu halten, die Antwort Körper.-a -b -c -b -z -y -c
ich denke, warum macht Ihr Jungs nicht volle Formen wie--silent --header --write-out