2010-10-29 8 views
15

Sto tentando di inviare un file binario a un server su HTTP. L'inizio del file contiene le intestazioni giàFile binario POST con arricciatura della linea cmd utilizzando le intestazioni contenute nel file

Sto cercando di inviare un file utilizzando la versione da riga di comando di riccio per le finestre in questo modo:

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

Curl aggiunge intestazioni che causano una 400 Richiesta non valida.

Quando eseguo esattamente lo stesso comando utilizzando la versione di curl di Linux, il post è completo?

+2

Trovo strano che il ricciolo aggiunga intestazioni che portano a una cattiva richiesta. Dovresti provare ad aggiungere '-v' per vedere quali intestazioni Curl sta effettivamente inviando. – flesk

risposta

21

Usa

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

O

Installare Wireshark o violinista in finestre per vedere la richiesta HTTP che scorre attraverso la rete.

controllare le intestazioni e i valori inviati. Curl aggiunge poche intestazioni per impostazione predefinita. Queste intestazioni predefinite potrebbero essere incompatibili/non accettate dal server http a cui ci si connette in caso di Windows.

Per modificare il valore dell'intestazione (aggiunta per impostazione predefinita), è possibile aggiungere un'intestazione seguita dal punto e virgola. Ad esempio, Content-Type; per impostare il valore null.

+0

Stavo avendo un problema con suhosin su PHP. _ALERT - limite di lunghezza del nome della variabile di richiesta configurato superato - variabile drenata_ Il tipo di contenuto predefinito è application/x-www-form-urlencoded e, a meno che non venga specificato esplicitamente, è possibile attivare alcune regole di integrità su alcuni server. Questo ha risolto il problema per me. – Phil

+0

Infine qualcuno sa come impostare il nome file sul lato di destinazione? 'cat /tmp/12047.csv | curl -v -X POST --header "Content-Type: application/octet-stream" --data-binary @ - someUrl'? – Nick

Problemi correlati