2008-12-23 12 views
7

Estoy tratando de POSTAR a la puerta de enlace HTTP de un proveedor de SMS (Sybase 365) usando CURL desde un script de shell de Linux.¿CÓMO PUESTO LF con la herramienta de línea de comando curl?

tengo que pasar los datos siguientes (tenga en cuenta los caracteres [] y LF)

[MSISDN] 
List=+12345678 
[MESSAGE] 
Text=Hello 
[END] 

Si presento un archivo mediante el parámetro -F, rizo elimina la LF, por ejemplo,

curl -F @myfile "http://www.sybase.com/..." 

resultados en esta en el servidor (que es rechazado)

[MSISDN]List=+12345678[MESSAGE]Text=Hello[END] 

¿Hay algo que pueda hacer para evitar esto o necesito una herramienta alternativa?

Estoy usando un archivo que contiene mis datos para probar pero me gustaría evitar eso en la práctica y POST directamente desde el script.

Respuesta

3

Tengo este trabajo utilizando -d

request=`printf "[MSISDN]\nList=$number\n[MESSAGE]\nText=$message\n[END]\n"` 
response=`curl -s -u $username:$password -d "$request" http://www.sybase.com/...` 

Curiosamente, si uso @myfile -d (donde mi_archivo contiene LF texto separado), no funciona.

También probé --data-binary sin éxito.

3

Probablemente una idea tonta, pero supongo que realmente no requiere CRLF en lugar de solo LF?

Como alternativa, ¿ha intentado utilizar la opción --data-binary en lugar de -F?

+0

CRLF o LF - no hace ninguna diferencia - pero hasta que Athena y me hizo consciente de --Hojas binario , No pude enviar tampoco. Gracias. –

11

Intente utilizar --data-binary en lugar de -d(ata-ascii).

Desde el manual:

--Hojas-binario (HTTP) Este mensajes de datos en una manera similar como --Hojas-ascii hace, aunque cuando se utiliza esta opción todo el contexto de los datos publicado es mantenido tal como está

Si desea publicar un archivo binario sin la característica de nuevas líneas de la opción --data-ascii, esto es para usted. Si esta opción se usa varias veces, las que siguen a la primera anexarán datos.

ETA: oops, Debo leer la pregunta más de cerca. Estás usando -F, no -d. Pero --data-binary todavía puede valer la pena.

+0

Esa es la conclusión a la que acababa de llegar también :) –

+0

¡Ajá! He estado trabajando desde esta página http://curl.haxx.se/docs/manual.html de la cual me acabo de dar cuenta es solo uso, no menciona --data-binary. De hecho, quiero evitar usar -F porque quiero evitar el uso del sistema de archivos. –

1
curl "url" --data-binary @myfile 

mensajes nuevas líneas en los datos [probados en rizo 7.12.1]

Cuestiones relacionadas