Quiero ejecutar un comando curl en Applescript que haga lo siguiente ( según esta pregunta / respuesta de SE ) :
... Haga un
HTTP POSTde contents (como una cadena) de un archivo local ubicado enpath/to/my-file.txta un punto final de URL enhttp://example.com/API.
El comando curl correcto para eso es el siguiente:
curl -d "data=@~/path/to/my-file.txt" https://example.com/API
Luego de las respuestas en esta publicación , probé el siguiente comando de Apple:
AppleScriptdo shell script "curl -d data=@~/path/to/my-file.txt https://example.com/API"
El resultado que espero es ver el contenido de my-file.txt PUBLICADO en el punto final de la API en https://example.com/API con la clave data .
Sin embargo, el resultado real que veo en el punto final con la clave data es la siguiente cadena:
"@~/path/to/my-file.txt
En otras palabras, en lugar de enviar POSTing el contenido del archivo, es POSTing la ruta literal al archivo como una cadena.
Pregunta
¿Cuál es la sintaxis correcta del comando Applescript?
Otros intentos fallidos:
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"
En la lista para probar:
- Use la ruta de acceso completa a my-file.txt, no use ~.
- Escape la opción "en los datos =, por ejemplo: do shell script" curl -d \ "data=@~/path/to/my-file.txt \" enlace "