Ich möchte einen curlBefehl in Applescript ausführen , der Folgendes ausführt ( gemäß dieser SE-Frage / Antwort ):
... Führen Sie einen
HTTP POSTder Inhalte (als Zeichenfolge) einer lokalen Datei aus, die sich anpath/to/my-file.txteinem URL-Endpunkt unter befindethttp://example.com/API.
Der richtige curlBefehl 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, dataist 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"