HTTP响应无法识别的文本

时间:2016-01-21 10:40:59

标签: java .net xml http lotus

我有一个Lotus Notes java代理,我在其中收到一个XML,解析它并以XML作为内容发回一个响应:

                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="1449750433..595@" 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>"  );

1 个答案:

答案 0 :(得分:3)

HTTP标头需要CR + LF(Windows样式)行结尾。尝试手动输入行结尾,例如:

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

然后用空行标记标题的结尾:

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