Java HTTP头变为小写2

Java HTTP头变为小写2,java,http,post,header,Java,Http,Post,Header,我需要通过http post发送大写标题。故事的第一部分被描述了。现在是时候了。:) 这里有两个问题 它不起作用。:)服务器的servlet recive: 工作流=TSM\ soapaction=requestCreditBureau eif=3 服务器上的HttpServletRequest中没有参数,只有标头 println()方法将使用系统行分隔符发送换行符。 HTTP定义严格使用\r\n作为行分隔符。 因此,您应该对换行符进行硬编码: pw.print("SOAPAction: req

我需要通过http post发送大写标题。故事的第一部分被描述了。现在是时候了。:)

这里有两个问题

  • 它不起作用。:)服务器的servlet recive:
  • 工作流=TSM\ soapaction=requestCreditBureau eif=3

  • 服务器上的HttpServletRequest中没有参数,只有标头
  • println()
    方法将使用系统行分隔符发送换行符。 HTTP定义严格使用
    \r\n
    作为行分隔符。 因此,您应该对换行符进行硬编码:

    pw.print("SOAPAction: requestCreditBureau\r\n");
    pw.print("eif: 3\r\n");
    pw.print("host: localhost\r\n");
    pw.print("content-length: " + params.getBytes().length + "\r\n");
    pw.print("\r\n");
    

    考虑使用
    java.net.HttpURLConnection
    而不是自己实现HTTP协议。

    谢谢!问题是我使用了tomcat7。使用jetty时没有这种问题。

    很抱歉格式不正确。问题出在SOAPAction头中。您发送了两次
    “POST/TestServlet/TestServlet HTTP/1.0”
    !您应该只发送一次。@Dev:第一行发送了两次,您确定这只是一个打字错误吗?此外,您还可以更新问题,以防您希望通信的任何更改。究竟为什么您要用自己的HTTP实现来重新发明轮子,而不是使用java.net包中标准API中的类?标头名称不区分大小写。为什么这个案子会困扰你?
    pw.print("SOAPAction: requestCreditBureau\r\n");
    pw.print("eif: 3\r\n");
    pw.print("host: localhost\r\n");
    pw.print("content-length: " + params.getBytes().length + "\r\n");
    pw.print("\r\n");