该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口名称:std::string SendVehiclePass(std::string VehiclePassInfo, struct xsd__base64BinaryPlatePicData, struct xsd__base64Binary CarPic1, struct xsd__base64Binary CarPic2,struct xsd__base64Binary CarPic3)
PlatePicData:车牌特征小图片信息,最大 20K,可以为空。CarPic1:车辆图片 1,最大 1.5M,不能为空。CarPic2:车辆图片 2,最大 1.5M,可以为空。CarPic3:车辆图片 3,最大 1.5M,可以为空。所有以上图片信息若超过规定大小请自行压缩。车辆图片按照从左到右依次赋值,如果有一张图片,则赋值到 CarPic1,有两张则依次赋值CarPic1,CarPic2,依此类推。PlatePicData:只存车牌小图片。struct xsd__base64Binary{unsigned char* __ptr;//图片数据缓冲区int __size;//图片数据大小};
第一个参数xml没问题,后面图片的形式该怎么组装?传了过去图片不现实,好着急啊,求大佬指导
我的代码:
String endpoint = "http://ip:port/";//webservice服务地址
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);//设置服务请求路径
call.setOperationName(new QName("http://ip.org/ns.xsd", "SendAlarmPass"));//服务请求方法
call.addParameter("VehicleAlarmInfo", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("PlatePicData", XMLType.XSD_BASE64, ParameterMode.IN);
call.addParameter("CarPic1", XMLType.XSD_BASE64, ParameterMode.IN);
call.addParameter("CarPic2", XMLType.XSD_BASE64, ParameterMode.IN);
call.addParameter("CarPic3", XMLType.XSD_BASE64, ParameterMode.IN);
call.setReturnClass(String.class);//设置服务请求后返回数据类型
ImgModel m = new ImgModel();
InputStream in = new FileInputStream("E:\\test22.jpg");
byte[] data = new byte[in.available()];
m.set__ptr(data);
m.set__size(12);
String res = (String) call.invoke(new Object[] {xml,StringUtil.ObjectToByte(m),StringUtil.ObjectToByte(models.get(0)),null,null });//服务请求时,传入的参数数据
System.out.println(res);
ImgModel类
public class ImgModel implements Serializable{
private static final long serialVersionUID = -218608721406561464L;
private byte[] __ptr;
private int __size;