【发布时间】: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