接口开发,带string和struct参数方法编写,图片base64Binary编码编写(c#开发)
接口名称:Std::string SendVehiclePass(std::string VehiclePassInfo, struct xsd__base64Binary PlatePicData, struct
xsd__base64Binary CarPic1, struct xsd__base64Binary CarPic2, struct xsd__base64Binary CarPic3)
参数说明:
VehiclePassInfo:过车信息详情xml,具体如下:
<?xml version="1.0" encoding=" UTF-8 " standalone="yes" ?>
<ROOT>
<XJIP>相机IP</XJIP>
<XJDKH>相机端口号</XJDKH>
<JGSK>经过时刻</JGSK>
<CDBH>车道编号</CDBH>
<HPHM>号牌号码</HPHM>
<HPYS>号牌颜色</HPYS>
<HPZL>号牌种类</HPZL>
<CLSD>车辆速度</CLSD>
<CWKC>车外廓长</CWKC>
<CSYS>车身颜色</CSYS>
<CLLX>车辆类型</CLLX>
<CLPP>车辆品牌</CLPP>
<SSYF>实时与否</SSYF>
</ROOT>
PlatePicData:车牌特征小图片信息,最大20K,可以为空,图片以JPEG格式压缩。
CarPic1:车辆图片1,最大1.5M,不能为空。
CarPic2:车辆图片2,最大1.5M,可以为空。
CarPic3:车辆图片3,最大1.5M,可以为空。
所有以上图片信息若超过规定大小请自行压缩。
车辆图片按照从左到右依次赋值,如果有一张图片,则赋值到CarPic1,有两张则依次赋值CarPic1,CarPic2,依此类推。
PlatePicData:只存车牌小图片。
struct xsd__base64Binary
{
unsigned char* __ptr;//图片数据缓冲区
int __size;//图片数据大小
};
Respond:返回值为xml字符串。格式如下:
<?xml version="1.0" encoding=" UTF-8 " standalone="yes" ?>
<ROOT>
<!—返回结果信息,0为调用成功,其它值为失败-->
<CODE>0</CODE>
<!—CODE为非0时,MESSAGE 字段为失败的原因,CODE为0时为空-->
<MESSAGE>失败时获取详细的失败信息</MESSAGE>
</ROOT>
我完成的部分代码:
public static bool UploaderInfoPic(PassingVehicle vehicle)
{
string plateNbr;
if (string.IsNullOrEmpty(vehicle.plateNbr))
{
plateNbr = "-";
}
else
{
plateNbr = vehicle.plateNbr;
}
string strVehicleInfo = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
"<ROOT>" +
"<KKMY>" + GetDeviceInfo(vehicle.deviceNo).Substring(12) + "</KKMY>" +
"<KKBH>" + GetDeviceInfo(vehicle.deviceNo).Substring(0, 12) + "</KKBH>" +
"<JGSK>" + Convert.ToDateTime(vehicle.captureTime).ToString
("yyyyMMddhhmmssfff") + "</JGSK>" +
"<CDBH>0" + vehicle.lane + "</CDBH>" +
"<HPHM>" + plateNbr + "</HPHM>" +
"<HPYS>" + vehicle.plateColor + "</HPYS>" +
"<HPZL>" + vehicle.plateType + "</HPZL>" +
"<CLSD>" + vehicle.vehicleSpeed + "</CLSD>" +
"<CWKC></CWKC>" +
"<CSYS>Z</CSYS>" +
"<CLLX></CLLX>" +
"<SSYF>0</SSYF>" +
"</ROOT>";
return true;
}
public static string GetDeviceInfo(string DeviceNbr)
{
DataTable dt = CSVProvider.ToDataTable2(DeviceKeyPath,true);
Dictionary<string, string> DicKey = new Dictionary<string, string>();
for (int i = 0; i < dt.Rows.Count;i++ )
{
DicKey.Add(dt.Rows[i][0].ToString(), dt.Rows[i][1].ToString()+dt.Rows[i][2].ToString());
}
return DicKey[DeviceNbr];
}
接下来不知道怎么写了?谁帮忙一下。。。。
C# 编码 struct 图片 String --------------------编程问答-------------------- Fields字段列表:
--------------------编程问答-------------------- 在写等待回复结贴。谢谢!!! --------------------编程问答-------------------- 没有人回复么?
补充:.NET技术 , C#