java – 字符串参数通常会在Web服务中自动转义吗?
发布时间:2020-12-15 02:16:39 所属栏目:Java 来源:网络整理
导读:我今天发现,从客户端传递到服务器的字符串参数中的简单%会导致错误请求400. 由于我对Web服务有基本知识,所以我不知道这是否是正常行为.我是否遗漏了某些东西(是我对逃避字符串的责任?)还是我应该在其他地方看看? 客户代码: @WebMethod(operationName = "
我今天发现,从客户端传递到服务器的字符串参数中的简单%会导致错误请求400.
由于我对Web服务有基本知识,所以我不知道这是否是正常行为.我是否遗漏了某些东西(是我对逃避字符串的责任?)还是我应该在其他地方看看? 客户代码: @WebMethod(operationName = "push",action = "urn:Push") public boolean push(String msg); 服务器代码: @XmlRootElement(name = "push",namespace = "http://ws.something.com/") @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "push",namespace = "http://ws.something.com/",propOrder = {"arg0"}) public class Push { @XmlElement(name = "arg0") private java.lang.String arg0; public java.lang.String getArg0() { return this.arg0; } public void setArg0(java.lang.String newArg0) { this.arg0 = newArg0; } } 注意: 这个客户端/服务器对在我们的开发主机服务器上本地工作正常,即使在字符串参数中有%.但是,它确实导致另一台主机服务器上的Bad Request 400.因此它可能与服务器主机环境有关.如果是这样,我想暗示可能导致这种情况的原因. 解决方法
很可能默认字符集在您的环境中是不同的.试试这个样本.
String test = new String("%"); System.out.println(test); byte[] byteArray = test.getBytes("UTF-16"); test = new String(byteArray); System.out.println(test); 这很简陋,但您会了解字符编码如何影响结果. 请查看此处了解更多详情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |