参数中带有西里尔字符的SOAP请求

时间:2015-11-10 16:53:18

标签: java web-services soap wsdl

有一个带WSDL接口的Web服务,我必须为这个服务创建一个简单的客户端。我已经解析了WSDL文件,并根据它们制作了客户端逻辑。该逻辑必须从客户端获取密钥值,使用此值发出SOAP请求,将该请求发送到服务器,从响应中获取响应值。该服务能够从英语和俄语写的客户端获取关键值,并且英语请求工作正常。但是当我尝试使用西里尔符号发送请求时,服务器返回错误的结果。我认为这是因为编码。我试图用这段代码(Java)将该字符串转换为UTF-8

String city = "Москва";
byte[] pt;
pt = city.getBytes(StandardCharsets.UTF_16);
city = new String(pt, "UTF-8");

我知道Java中的String只能存储UTF-16值,所以这可能没用,但是我应该使用的服务WSDL方法只能使用String。 SOAP请求的参数也有utf-8。我应该怎么做才能使网络服务采用正确编码的西里尔符号?我可以更改从WS解析的WSDL类,使它们使用utf-16编码生成请求,或者这是错误的想法吗?

0 个答案:

没有答案