Curl-Terminal-Befehlssyntax von Applescript

1

Ich möchte einen curlBefehl in Applescript ausführen , der Folgendes ausführt ( gemäß dieser SE-Frage / Antwort ):

https://superuser.com/a/1054803/471181

... Führen Sie einen HTTP POSTder Inhalte (als Zeichenfolge) einer lokalen Datei aus, die sich an path/to/my-file.txteinem URL-Endpunkt unter befindet http://example.com/API.

Der richtige curlBefehl dafür ist der folgende:

Terminal
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:

AppleScript
do 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, dataist jedoch die folgende Zeichenfolge:

API.data
"@~/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:

AppleScript
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"
do shell script "curl -d 'data=@~/path/to/my-file.txt' https://example.com/API"

Auf der Liste zu versuchen:

  1. Verwenden Sie den vollständig qualifizierten Pfadnamen zu my-file.txt, verwenden Sie nicht ~.
  2. 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 ".
Mäher
quelle
@klanomath: Das bringt das gleiche Ergebnis.
Mowzer
Würde example.com/API wirklich funktionieren oder ist es nur ein Beispiel? oder hast du irgendwo eine test-api?
Klanomath
Zwei Dinge, an die ich denken kann. 1. Verwenden Sie den vollständig qualifizierten Pfadnamen my-file.txt, um nicht zu verwenden ~. 2. "data=do shell script "curl -d \"data=@~/path/to/my-file.txt\" https://example.com/API"
Verlassen Sie das Kontrollkästchen