前言:项目中遇到调用webservice 增加表头验证的逻辑,于是从网上找资料。一直跪倒底。没解决。终于功夫不负有心人。哈哈哈哈。解决方法用的是直接访问http的方法,拼接xml。
如果还有小白不知道xml拼接是什么鬼,那么到现在你用过测试工具测试一下你的webservice 可以调通吗。比如 postman,soapui等
里面测试的时候不就是xml格式的吗。
一。用于拼接xml的表头信息 表头的标签根据自己的情况设置 里面包含用户和密码
public static String getSoapHeader(){
//上面代码为从缓存中取到我们需求传递到认证头的数据 下面开始添加认证头
StringBuffer soapHeader = new StringBuffer();
soapHeader.append("<soap:Header>");
soapHeader.append("<UserValidationSoapHeader xmlns=\"http://P2LVEDI.Pror/\">");
soapHeader.append("<UserName>HICUser</UserName>");
soapHeader.append("<Password>passWord</Password>");
soapHeader.append("</UserValidationSoapHeader>");
soapHeader.append("</soap:Header>");
return soapHeader.toString();
}
二.拼接主体的xml信息 这个方法是我传递数据的对象,你们可以删掉用你们自己的
public static String addAsnInfo(AsnChild child,Asn asn,Integer falg) {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
StringBuffer template = new StringBuffer("");
template.append("<Plant>"+child.getPlant()+"</Plant>");
template.append("<VendorCode&g