I'm trying to send a binary file to a server over HTTP. The beginning of the file contains headers already
I'm trying to send a file using command line version of curl for windows like so:
C:>curl -H "Content-Type:application/octet-stream" --data-binary @asdf.file http://server:1234/url
Curl is adding headers which cause a 400 Bad Request.
When I run the exact same command using the linux version of curl, the post completes?
To send an HTTP header with a Curl request, you can use the -H command-line option and pass the header name and value in "Key: Value" format. If you do not provide a value for the header, this will remove the standard header that Curl would otherwise send.
To post a file with Curl, use the -d or -F command-line options and start the data with the @ symbol followed by the file name. To send multiple files, repeat the -F option several times.
curl will strip all newlines from the file. If you want to send the file with newlines intact, use --data-binary in place of --data . now how would one add login credentials to authorize this request? @anon58192932 - That depends upon the security protocol of the server.
Use
curl --header "Content-Type:application/octet-stream" --trace-ascii debugdump.txt --data-binary @asdf.file http://server:1234/url
Or
Install wireshark or fiddler in windows to see the http request that flows over the network.
check the headers and the values being sent. Curl adds few headers by default. These default headers may be incompatible/not-accepted by the http server you connect to in case of windows.
To modify the value of header (added by default), you can add header followed by semi-colon. For example, Content-Type;
to set the value null.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With