2010-10-29 20 views
15

Estoy tratando de enviar un archivo binario a un servidor a través de HTTP. El principio del archivo contiene cabeceras yaPOST archivo binario con curl de línea cmd usando encabezados contenidos en el archivo

Estoy intentando enviar un archivo utilizando la versión de línea de comandos de rizo para las ventanas de este modo:

C:> rizo -H "Content-Type: application/octet stream "--data-binary @ asdf.file http://server:1234/url

Curl está agregando encabezados que causan una 400 Bad Request.

Cuando ejecuto el mismo comando usando la versión de curl de Linux, ¿la publicación finaliza?

+2

Me resulta extraño que curl agregue encabezados que conducen a una mala solicitud. Debería intentar agregar '-v' para ver qué encabezados curl está enviando en realidad. – flesk

Respuesta

21

Uso

curl --header "Content-Type:application/octet-stream" --trace-ascii debugdump.txt --data-binary @asdf.file http://server:1234/url 

O

Instalar Wireshark o violinista en las ventanas para ver la solicitud HTTP que fluye a través de la red.

compruebe los encabezados y los valores que se envían. Curl agrega algunos encabezados por defecto. Estos encabezados predeterminados pueden ser incompatibles/no aceptados por el servidor http al que se conecta en el caso de Windows.

Para modificar el valor del encabezado (agregado por defecto), puede agregar encabezado seguido de punto y coma. Por ejemplo, Content-Type; para establecer el valor nulo.

+0

Estaba teniendo un problema con suhosin en PHP. _ALERT - variable de solicitud configurada límite de longitud de nombre excedido - variable descartada_ El tipo de contenido predeterminado es application/x-www-form-urlencoded y, a menos que lo especifique explícitamente, podría desencadenar algunas reglas de cordura en algunos servidores. Esto solucionó el problema para mí. – Phil

+0

Por último, ¿alguien sabe cómo configurar el nombre de archivo en el lado de destino? 'cat /tmp/12047.csv | curl -v -X POST - encabezado "Content-Type: application/octet-stream" --data-binary @ - someUrl'? – Nick

Cuestiones relacionadas