
Ich kann einfach nicht verstehen, warum alle meine Versuche fehlschlagen. Ich versuche, mit curl eine POST-Anfrage mit JSON an eine bestimmte URL zu senden, wenn ein Pfad zu JSON als Variable definiert ist:
#!/bin/sh
JSON_TMP=/home/aaa/jsons/make_6h_from_1h.json
curl -X POST -H "Content-Type: application/json" --data-binary "@${JSON_TMP}" http://some-url
Was auch immer ich versucht habe ( "@${JSON_TMP}"
oder oder "@$JSON_TMP"
oder @"${JSON_TMP}"
was auch immer eingegeben habe), es scheint einfach nicht zu funktionieren!
Noch ärgerlicher ist, dass es keine Fehlermeldungen oder ähnliches gibt. Ich führe einfach den Befehl aus und bekomme wieder eine Eingabeaufforderung zurück. Am anderen Ende kann ich sehen, dass kein JSON gesendet wurde.
Antwort1
Folgende Werke:
body_arg=(--data-binary @${filePath})
curl -X POST -H "Content-Type: application/json" "${body_arg[@]}" http://some-url
Antwort2
curl -X POST -i -H "Accept: application/json" -H "Content-Type: application/json" --data-binary --data-binary @${JSON_TMP} http://some-url
Versuchen Sie, die Anführungszeichen bei @${JSON_TMP} zu entfernen.