2016-01-21 61 views
1

我有,我收到一個XML一個Lotus Notes Java代理,分析它,並用XML發送回一個響應的內容:HTTP響應無法識別的文本

   pw.println("Content-Type: text/xml"); 
       pw.println("charset: UTF-8"); 
       pw.print("\r\n"); 
       pw.println("<cXML payloadID=\"" + payload + "\" xml:lang=\"en\"" + " timestamp=\"" + timestamp + "\" >" + "<Response><Status code=\"200\" text=\"OK\" /></Response></cXML>" ); 

我檢查響應內容將如何模樣和我看到這一點:

<cXML payloadID="[email protected]" xml:lang="en" timestamp="2015-12-10T12:27:13"><Response><Status code="200" text="OK"/></Response></cXML> 

,但如果我檢查Wireshark的,然後我看到:

enter image description here

爲什麼我得到這個無法識別的文本。

和B得到我回應背面有一個.NET應用程序接收主機,這.NET應用程序收到此錯誤: enter image description here

任何人都可以幫助我。

謝謝

更改代碼:

    pw.println("Content-Type: text/xml; charset=utf-8\r\n"); 

       pw.println("<cXML payloadID=\"" + payload + "\" xml:lang=\"en\"" + " timestamp=\"" + timestamp + "\" >" + "<Response><Status code=\"200\" text=\"OK\" /></Response></cXML>" ); 
+0

讀它是非常具體的錯誤。它看起來像你用0x0D來終止標題,你需要0x0D 0x0A – jdweng

+0

你在哪裏看到這個? – YdB

+0

FWIW,沒有「字符集」響應標題。 –

回答

3

HTTP頭需要CR + LF(Windows樣式)行尾。嘗試把行結束手動,例如:

pw.print("Content-Type: text/xml\r\n"); 

,然後標記頭的一端與一個空行:

pw.print("\r\n"); 
+0

不能工作,不幸的是 – YdB

+0

我嘗試了以下(請參閱我的問題中的代碼)沒有工作 – YdB

+0

所有的標題行都需要以相同的方式完成。 –