我有一個DLL庫,我無法控制,它建立一個XML消息,並通過HTTP發送到Web服務器。由於嚴格的規範,服務器將只接受POST HTTP/1.1的消息。但是,服務器中的日誌顯示接收的消息是POST HTTP/1.0。如果我直接在瀏覽器中打開URL,日誌顯示GET HTTP/1.1,這是正確的。我們沒有通過代理服務器,網關也沒有通過我可以告訴的內容來改變版本。我嘗試過兩種不同的網絡,並且遇到同樣的錯誤。另外,我在Windows Server 2003和Windows XP Pro上嘗試過,它們都應該支持HTTP 1.1。HTTP版本問題發佈到服務器的XML消息
有沒有人有任何想法爲什麼服務器使用POST接收HTTP/1.0,但使用GET顯示HTTP/1.1?
編輯: 我已經聯繫了這個DLL製造商,但他們的幫助並不是那麼好。
編輯2: 使用Fiddler,我能夠提取標題,這是張貼在下面。正如你可以看到它使用HTTP/1.0。
POST/48A548C0BA8211DEA1EEE5AF2B3D5823; 48A548C1BA8211DEA1EE8EF735B81699/ SJzWLaVEESCESCX6ESCESCW〜ESC6FESCwxEuESCESCAb,L7ESCecvESCuESCESCrBESCHpESC3 ESCESCJw_ESCESClrj,ESC_4xESCOQpLwyRJGgp6p3YDG uvXESCESC6 wVxESC7.dESCcTvmG5WM HTTP/1.0
內容類型:!應用/ XML;字符集= 「UTF-8」 主機:*** 內容長度:787
好吧,所以要100%確定:當使用DLL來執行HTTP請求時,服務器始終顯示請求是一個HTTP/1.0請求?任何現代瀏覽器都支持HTTP/1.1,順便說一句。 – 2009-10-16 18:06:54
是的。是的,這可能是爲什麼它通過瀏覽器時顯示HTTP/1.1。但是,通過執行某種HTTP請求的DLL顯示HTTP/1.0。 – 2009-10-16 18:12:36
您也可以使用Fiddler檢查瀏覽器和您的網站之間的HTTP數據流量 – 2009-10-16 18:16:11