Voglio eseguire un comando curl
in Applescript che esegue quanto segue ( per questa domanda / risposta SE ) :
...Do an
HTTP POST
of the contents (as a string) of a local file located atpath/to/my-file.txt
to a URL endpoint athttp://example.com/API
.
Il comando curl
corretto per questo è il seguente:
curl -d "data=@~/path/to/my-file.txt" https://example.com/API
Seguendo le risposte in questo post , ho provato il seguente comando di Applescript:
AppleScriptdo shell script "curl -d data=@~/path/to/my-file.txt https://example.com/API"
Il risultato che mi aspetto è di vedere i contenuti di my-file.txt inviati all'endpoint API a https://example.com/API
con la chiave data
.
Tuttavia, il risultato effettivo che vedo nell'endpoint con la chiave data
è la seguente stringa:
"@~/path/to/my-file.txt
In altre parole, invece di pubblicare i contenuti del file, è POSTARE il percorso letterale del file come una stringa.
Domanda
Qual è la sintassi corretta del comando di Applescript?
Altri tentativi non riusciti:
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"
Elenco in cui cercare:
- Utilizza il nome percorso completo per my-file.txt, non utilizzare ~.
- Escape the "nell'opzione data =, ad esempio: script di shell" curl -d \ "data=@~/path/to/my-file.txt \" link "