2016-01-21 107 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

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