I have a DLL library, which I have no control over, that builds a XML message and sends it over HTTP to a web server. Due to the strict specifications, the server will only accept message with POST HTTP/1.1. However, the logs in the server shows receiving messages being POSTed HTTP/1.0. If I open the URL directly into a browser, the log shows GET HTTP/1.1, which is correct. We're not going through a proxy and the gateway isn't changing the version from what I can tell. I've tried on two different networks and I get the same error. Also, I have tried on Windows Server 2003 and Windows XP Pro, both of which should support HTTP 1.1.
Does anyone have any ideas why the server is receiving HTTP/1.0 using a POST, but using a GET shows HTTP/1.1?
Edit: I've contacted the DLL maker about this, but their help isn't that great.
Edit 2: Using Fiddler, I was able to extract the header, which is posted below. As you can see it's using HTTP/1.0.
POST /48A548C0BA8211DEA1EEE5AF2B3D5823;48A548C1BA8211DEA1EE8EF735B81699/ SJzWLaVEESCESCX6ESCESCW~ESC6FESCwxEuESCESCAb,L7ESCecvESCuESCESCrBESCHpESC3 ESCESCJw_ESCESClrj,ESC_4xESCOQpLwyRJGgp6p3YDG!uvXESCESC6!wVxESC7.dESCcTvmG5WM HTTP/1.0
Content-Type: application/xml;charset="utf-8" Host: *** Content-Length: 787
Sounds like you're out of luck seeing as you can't change the DLL. According to your response above in the comments, it seems like the DLL you're using is using HTTP/1.0 to send the HTTP requests to the server.
This is as good an answer as I can provide you with, given that you did not specify which DLL you are talking about or provided additional details.
I would suggest you to take a closer look at the DLL you're using to see if it is possible to instruct that library to use HTTP/1.1 for the requests it's sending out.
Write a server that acts a proxy, accepts http/1.0 obviousy, and then forwards to the destination server. This could work if you only have destination server. Otherwise get in touch with the vendor...... or perhaps take up reverse engineering as a side hobby.
Also on fiddler you should see the request and and response. You can correctly configure fiddler2 with any httpclient (besides just IE) using this reference: http://www.fiddler2.com/fiddler/help/hookup.asp