2011-09-20 7 views
6

He buscado esta respuesta pero no he encontrado nada que funcione o que coincida completamente con mi problema.Unix cURL POST a variable específica usando contenidos de un archivo

Usando Unix cURL, necesito enviar un par clave/valor a un servidor. La clave será "MAC" y el contenido de un archivo de direcciones MAC separadas por nueva línea será el VALOR de este POST.

He intentado:

curl -d @filename http://targetaddress.com, pero cuando el objetivo recibe la entrada de correos, la var POST es vacía. (PHP está recibiendo).

que he visto otras formas de rizo mencionado en este sitio, usando --url-encode el que dice que no es una opción válida para el enrollamiento en mi sistema ...

¿Cómo publicar el contenido de un archivo como una valor a una clave específica en un POST utilizando UNIX CURL?

+0

Si está utilizando UNIX de línea de comandos, entonces estás usando una concha también. Mejorará sus posibilidades de obtener una respuesta útil al agregar una etiqueta para bash o ksh o ??? Buena suerte. – shellter

+0

gracias, agregó que. – Rimer

Respuesta

4

Según la página de manual de curl -d es igual que --data-ascii. Para publicar los datos como uso binario --data-binary y para publicar con la codificación de url, use --data-urlencode. Por lo que el archivo no está codificado en URL si quieres enviarlo URL uso codificado:

curl --data-urlencode @file http://example.com 

Si archivo contiene algo como:

00:0f:1f:64:7d:ff 
00:0f:1f:64:7d:ff 
00:0f:1f:64:7d:ff 

esto se traducirá en una petición POST recibido algo como:

POST/HTTP/1.1 
User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15 
Host: example.com 
Accept: */* 
Content-Length: 90 
Content-Type: application/x-www-form-urlencoded 

00%3A0f%3A1f%3A64%3A7d%3Aff%0A00%3A0f%3A1f%3A64%3A7d%3Aff%0A00%3A0f%3A1f%3A64%3A7d%3Aff%0A 

Si desea agregar un nombre que puede utilizar de varias forma de codificación algo como:

curl -F [email protected] http://example.com 

o

curl -F MACS=<file http://example.com 
+0

Tenga en cuenta que si desea enviar una cadena URL codificada en un parámetro, SIN usar la codificación de formulario multiparte, debe usar 'curl --data-urlencode param @ file http: // example.com' Vea también http: // superuser .com/questions/543762/posting-a-files-contents-with-curl –

Cuestiones relacionadas