【问题标题】:java.lang.IllegalArgumentException: Illegal character(s) in message header field: Authorization: Basicjava.lang.IllegalArgumentException:消息头字段中的非法字符:授权:基本
【发布时间】:2020-02-06 13:46:14
【问题描述】:

我正在编写一个 java 类来触发 web 服务,但是在尝试执行它时出现错误。

java.lang.IllegalArgumentException: Illegal character(s) in message header field: Authorization: Basic

当我从“授权:基本”中删除冒号字符时,我没有收到错误消息。

MimeHeaders headers = soapMessage.getMimeHeaders();
headers.addHeader("SOAPAction", serverURI  + "send");
headers.addHeader("Authorization: Basic ", "123456789123456789");

有没有办法发送冒号而不会出错?

java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)

【问题讨论】:

  • 尝试用反斜杠转义冒号。 headers.addHeader("Authorization\: Basic ", "123456789123456789");
  • 谢谢@RobMoll ... 试过了,但它不能编译“smsWebService.java:74: 非法转义字符” smsWebService.java:74: 非法转义字符 headers.addHeader("Authorization\: Basic ", "123456789123456789");
  • unicode 怎么样?尝试用\u003A 代替冒号。
  • @RobMoll ...试过了...编译正常,但同样的错误:原因:java.lang.IllegalArgumentException:消息头字段中的非法字符:授权:基本
  • 好的。我最后一次尝试:去掉“Basic”后字符串末尾的空格:headers.addHeader("Authorization: Basic", "123456789123456789");

标签: java html soap illegal-characters


【解决方案1】:

通过替换解决:

headers.addHeader("Authorization: Basic ", "123456789123456789"); 

headers.addHeader("Authorization", "Basic 123456789123456789");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 2016-09-26
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2019-01-24
    • 2016-04-24
    相关资源
    最近更新 更多