Ich möchte einen curl
Befehl in Applescript ausführen , der Folgendes ausführt ( gemäß dieser SE-Frage / Antwort ):
... Führen Sie einen
HTTP POST
der Inhalte (als Zeichenfolge) einer lokalen Datei aus, die sich anpath/to/my-file.txt
einem URL-Endpunkt unter befindethttp://example.com/API
.
Der richtige curl
Befehl dafür ist der folgende:
curl -d "data=@~/path/to/my-file.txt" https://example.com/API
Im Anschluss an die Antworten in diesem Beitrag habe ich den folgenden Applescript-Befehl ausprobiert:
AppleScriptdo shell script "curl -d data=@~/path/to/my-file.txt https://example.com/API"
Als Ergebnis erwarte ich, dass der Inhalt von my-file.txthttps://example.com/API
mit dem Schlüssel an den API-Endpunkt gesendet wird data
.
Das tatsächliche Ergebnis, das ich am Endpunkt mit dem Schlüssel sehe, data
ist jedoch die folgende Zeichenfolge:
"@~/path/to/my-file.txt
Mit anderen Worten, anstatt den Inhalt der Datei zu veröffentlichen, wird der Literalpfad zur Datei als Zeichenfolge veröffentlicht.
Frage
Was ist die korrekte Applescript-Befehlssyntax?
Andere erfolglose Versuche:
AppleScriptdo shell script "curl -d data=\@~/path/to/my-file.txt https://example.com/API"
do shell script "curl -d \"data=@~/path/to/my-file.txt\" https://example.com/API"
do shell script "curl -d 'data=@~/path/to/my-file.txt' https://example.com/API"
Auf der Liste zu versuchen:
- Verwenden Sie den vollständig qualifizierten Pfadnamen zu my-file.txt, verwenden Sie nicht ~.
- Schließen Sie die Option "in der data = -Option", z. B. "do shell script" curl -d \ "data=@~/path/to/my-file.txt \" https://example.com/API ".
my-file.txt
, um nicht zu verwenden ~
. 2. "
data=
do shell script "curl -d \"data=@~/path/to/my-file.txt\" https://example.com/API"