快递鸟物流跟踪api
应用场景
(1)电商网站用户打开“我的订单”时调用此API显示物流信息详情。
(2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题。
(3)适用于日查询量>500次的网站和系统。
注册快递鸟&申请Key
http://www.kdniao.com/reg?from=srwleo
快递查询Api接口
接口文档及各开发语言Demo
http://www.kdniao.com/documents-demo
查询Api接口定义
一、接口描述/说明
1.订阅接口
(1)此功能为专业定制,为特殊商户提供订阅服务,快递鸟系统会定时推送新的物流信息到商户系统。
(2)订阅快递号需指定相应的快递公司编码,格式不对或则编码错误都会返失败的信息。
如:EMS物流单号应选择快递公司编码(EMS)查看快递公司编码
(3)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(4)接口地址: API测试地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
API正式地址:https://api.kdniao.com/api/dist
请求系统级参数说明:
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
RequestData | String | 请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。 | R |
EBusinessID | String | 商户ID,请在我的服务页面查看。 | R |
RequestType | String | 请求指令类型:1008 | R |
DataSign | String | 数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。 | R |
DataType | String | 请求、返回数据类型:2-json; | R |
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
2.推送接口(商户实现)
(1)客户需要按快递鸟要求开发接口,保证信息的正常接收。
(2)快递鸟主动推送时,物流信息接收接口由客户提供。
(3)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(4)运单物流信息全量推送(每次推送的运单物流信息包括运单当前所有的的物流信息)。
请求系统级参数说明:
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
RequestData | String | 请求内容需进行URL(utf-8)编码。请求内容只支持JSON格式。 | R |
RequestType | String | 101-轨迹查询结果, 107-货款状态 | R |
DataSign | String | 数据内容签名(把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码) | R |
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
二、接口参数
1.订阅接口
请求内容字段定义:
参数 | 类型 | 说明 | 必须要求 | |
---|---|---|---|---|
Callback | String(50) | 用户自定义回调信息 | O | |
MemberID | String(50) | 会员标识(备用字段) | O | |
WareHouseID | String(30) | 仓库标识(备用字段) | O | |
CustomerName | String | 电子面单客户账号(与快递网点申请) | O | |
CustomerPwd | String | 电子面单密码 | O | |
SendSite | String | 收件网点标识(名称) | O | |
ShipperCode | String(10) | 快递公司编码 | R | |
LogisticCode | String(30) | 快递单号 | R | |
OrderCode | String(30) | 订单编号 | O | |
MonthCode | String(20) | 月结编号 | O | |
PayType | Int | 邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付 | O | |
ExpType | String(2) | 快递类型:1-标准快件 | O | |
Cost | Double(5) | 快递运费 | O | |
OtherCost | Double(5) | 其他费用 | O | |
Receiver | Company | String(30) | 收件人公司 | O |
Name | String(30) | 收件人 | R | |
Tel | String(20) | 电话(电话与手机,必填一个) | R | |
Mobile | String(20) | 手机 | R | |
PostCode | String(10) | 收件人邮编 | O | |
ProvinceName | String(20) | 收件省(如广东省,不要缺少“省”) | R | |
CityName | String(20) | 收件市(如深圳市,不要缺少“市”) | R | |
ExpAreaName | String(20) | 收件区(如福田区,不要缺少“区”或“县”) | R | |
Address | String(100) | 收件人详细地址 | R | |
Sender | Company | String(30) | 发件人公司 | O |
Name | String(30) | 发件人 | R | |
Tel | String(20) | 手机与电话必填一个 | R | |
Mobile | String(20) | 发件人手机 | R | |
PostCode | String | 发件人邮编 | O | |
ProvinceName | String(20) | 发件省(如广东省,不要缺少“省”) | R | |
CityName | String(20) | 发件市(如深圳市,不要缺少“市”) | R | |
ExpAreaName | String(20) | 发件区(如福田区,不要缺少“区”或“县”) | R | |
Address | String(100) | 发件人详细地址 | R | |
IsNotice | Int(1) | 是否通知快递员上门揽件:0-通知;1-不通知;默认为1 | O | |
StartDate | String | 上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 | O | |
EndDate | String | O | ||
Weight | Double | 包裹总重量kg | O | |
Quantity | Int(2) | 件数/包裹数 | O | |
Volume | Double | 物品总体积m3 | O | |
Remark | String(60) | 备注 | O | |
IsSendMessage | Int(1) | 是否订阅短信:0-不需要;1-需要 | O | |
AddService(数组形式) | ||||
AddService | Name | String(20) | 增值服务名称 | O |
Value | String(30) | 增值服务值 | O | |
CustomerID | String(30) | 客户标识(选填) | O | |
Commodity(数组形式) | ||||
Commodity | GoodsName | String(100) | 商品名称 | O |
GoodsCode | String(20) | 商品编码 | O | |
Goodsquantity | Int(5) | 件数 | O | |
GoodsPrice | Double(10) | 商品价格 | O | |
GoodsWeight | Double | 商品重量kg | O | |
GoodsDesc | String(50) | 商品描述 | O | |
GoodsVol | Double | 商品体积m3 | O |
返回参数定义:
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
EBusinessID | String | 用户ID | R |
UpdateTime | String |
更新时间 YYYY-MM-DD HH24:MM:SS |
R |
Success | Bool | 成功与否:true,false | R |
Reason | String(50) | 失败原因 | O |
EstimatedDeliveryTime | String | 订单预计到货时间yyyy-mm-dd(即将上线) | O |
2.推送接口
应用级输入参数
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
EBusinessID | String | 用户电商ID | R |
PushTime | String | 推送时间 | R |
Count | String | 推送物流单号轨迹个数 | R |
Data | String | 推送物流单号轨迹集合 | R |
订阅查询结果(RequestType:101)
通过轨迹查询(订阅查询)接口订阅到快递鸟的数据,快递鸟推送时,会将推送的RequestType的值置为101,同时返回下列数据
请求内容字段定义:
参数 | 类型 | 说明 | 必须要求 | ||
---|---|---|---|---|---|
Data | EBusinessID | String | 商户ID | O | |
ShipperCode | String | 快递公司编码 | R | ||
LogisticCode | String | 快递单号 | R | ||
Success | Bool | 成功与否:true,false | R | ||
Reason | String | 失败原因 | O | ||
State | String | 物流状态: 0-无轨迹,1-已揽收,2-在途中,3-签收,4-问题件 | R | ||
CallBack | String | 订阅接口的Bk值 | O | ||
Traces | |||||
Traces | AcceptTime | String | 时间 | R | |
AcceptStation | String | 描述 | R | ||
Remark | String | 备注 | O | ||
EstimatedDeliveryTime | String | 预计到达时间yyyy-mm-dd | O |
货款状态(RequestType:107)
用户通过电子面单使用快递鸟货到付款等金融服务时,快递鸟会将该订单的金融状态通过接口推送给用户。
请求内容字段定义:
参数名称 | 类型 | 说明 | 必须要求 | |
---|---|---|---|---|
Data | EBusinessID | String | 用户电商ID | O |
OrderCode | String | 订单编号 | O | |
ShipperCode | String | 快递公司编码 | R | |
LogisticCode | String | 物流运单号 | R | |
Success | Bool | 成功与否 | R | |
Reason | String | 失败原因 | O | |
State | String | 物流状态:0-无轨迹,1-已揽收, 2-在途中 201-到达派件城市,3-签收,4-问题件 | R | |
CallBack | String | 订阅接口的Bk值 | O | |
OrderState | String | 订单货款状态:1-待出款;2-已出款;3-已收款 | O | |
AccountName | String | 返款银行卡开户人(例:**伟、*佳) | O | |
AccountTel | String | 返款银行卡手机末四位 | O | |
AccountNum | String | 返款银行卡末四位 | O |
返回参数定义
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
EBusinessID | String | 用户ID | R |
UpdateTime | String | 时间 | R |
Success | Bool | 成功与否:true,false | R |
Reason | String | 失败原因 | O |
三、示例
订阅接口
请求示例 JSON
{"ShipperCode":"SF","OrderCode":"SF201608081055208281","LogisticCode":"3100707578976","PayType":"1","ExpType":"1","CustomerName":"","CustomerPwd":"","MonthCode":"","IsNotice":"0","Sender":{"Name":"1255760","Tel":"","Mobile":"13700000000","ProvinceName":"广东省","CityName":"深圳市","ExpAreaName":"福田区","Address":"测试地址"},"Receiver":{"Name":"1255760","Tel":"","Mobile":"13800000000","ProvinceName":"广东省","CityName":"深圳市","ExpAreaName":"龙华新区","Address":"测试地址2"},"Commodity":[{"GoodsName":"书本"}]
}
返回示例 JSON
{"EBusinessID": "1151847","UpdateTime": "2016-08-09 16:42:38","Success": true,"Reason": ""}
推送接口(商户实现)
请求示例 JSON (订阅查询结果)
{"EBusinessID": "1109259","Count": "2","PushTime": "2015-3-11 16:21:06","Data": [{"EBusinessID": "1109259","OrderCode": "","ShipperCode": "EMS","LogisticCode": "5042260908504","Success": true,"Reason": "","State": "2","CallBack": "0","Traces": [{"AcceptTime": "2015-03-06 21:16:58","AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:钟定基;联系电话:)","Remark": ""},{"AcceptTime": "2015-03-07 14:25:00","AcceptStation": "离开深圳市 发往广州市","Remark": ""},{"AcceptTime": "2015-03-08 00:17:00","AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)","Remark": ""},{"AcceptTime": "2015-03-08 01:15:00","AcceptStation": "离开广州市 发往北京市(经转)","Remark": ""},{"AcceptTime": "2015-03-09 09:01:00","AcceptStation": "到达北京黄村转运站处理中心(经转)","Remark": ""},{"AcceptTime": "2015-03-09 18:39:00","AcceptStation": "离开北京市 发往呼和浩特市(经转)","Remark": ""},{"AcceptTime": "2015-03-10 18:06:00","AcceptStation": "到达 呼和浩特市 处理中心","Remark": ""},{"AcceptTime": "2015-03-11 09:53:48","AcceptStation": "呼和浩特市邮政速递物流分公司金川揽投部安排投递(投递员姓名:安长虹;联系电话:18047140142)","Remark": ""}]},{"EBusinessID": "1109259","OrderCode": "","ShipperCode": "EMS","LogisticCode": "5042260943004","Success": true,"Reason": "","State": "2","CallBack": "0","Traces": [{"AcceptTime": "2015-03-07 15:26:09","AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:周宏彪;联系电话:13689537568)","Remark": ""},{"AcceptTime": "2015-03-08 16:32:00","AcceptStation": "离开深圳市 发往广州市","Remark": ""},{"AcceptTime": "2015-03-09 00:58:00","AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)","Remark": ""},{"AcceptTime": "2015-03-09 01:15:00","AcceptStation": "离开广州市 发往北京市(经转)","Remark": ""},{"AcceptTime": "2015-03-10 05:20:00","AcceptStation": "到达北京黄村转运站处理中心(经转)","Remark": ""},{"AcceptTime": "2015-03-10 11:59:00","AcceptStation": "离开北京市 发往廊坊市(经转)","Remark": ""},{"AcceptTime": "2015-03-10 14:23:00","AcceptStation": "到达廊坊市处理中心(经转)","Remark": ""},{"AcceptTime": "2015-03-11 08:55:00","AcceptStation": "离开廊坊市 发往保定市(经转)","Remark": ""}]}]}
请求示例 JSON格式 (货款状态)
{"EBusinessID": "1109259","Count": "2","PushTime": "2015-3-11 16:21:06","Data": [{"EBusinessID": "1109259","OrderCode": "","ShipperCode": "EMS","LogisticCode": "5042260908504","Success": true,"Reason": "","State": "2","CallBack": "0","OrderState":"1","AccountName":"张三","AccountTel":"13800000000","AccountNum":"0321"},{"EBusinessID": "1109259","OrderCode": "","ShipperCode": "EMS","LogisticCode": "5042260908522","Success": true,"Reason": "","State": "2","CallBack": "0","OrderState":"1","AccountName":"张三","AccountTel":"13800000011","AccountNum":"0321"}]}
返回示例 JSON
{"EBusinessID": "1151847","UpdateTime": "2016-08-09 16:42:38","Success": true,"Reason": ""}
查询Api接口使用
以Java开发语言为例,进行展开
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.security.MessageDigest; /**
*
* 快递鸟订阅推送2.0接口
*
* @技术QQ: 4009633321
* @技术QQ群: 200121393
* @see: http://www.kdniao.com/api-subscribe
* @copyright: 深圳市快金数据技术服务有限公司
*
* ID和Key请到官网申请:http://www.kdniao.com/ServiceApply.aspx
*/public class KdniaoSubscribeAPI {//DEMOpublic static void main(String[] args) {KdniaoSubscribeAPI api = new KdniaoSubscribeAPI();try {String result = api.orderTracesSubByJson();System.out.print(result);} catch (Exception e) {e.printStackTrace();}}//电商IDprivate String EBusinessID="请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx";//电商加密私钥,快递鸟提供,注意保管,不要泄漏private String AppKey="请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx";//测试请求urlprivate String ReqURL = "http://testapi.kdniao.cc:8080/api/dist";//正式请求url//private String ReqURL = "https://api.kdniao.cc/api/dist";/*** Json方式 物流信息订阅* @throws Exception */public String orderTracesSubByJson() throws Exception{String requestData="{'OrderCode': 'SF201608081055208281'," +"'ShipperCode':'SF'," +"'LogisticCode':'3100707578976'," +"'PayType':1," +"'ExpType':1," +"'CustomerName':'',"+"'CustomerPwd':''," +"'MonthCode':''," +"'IsNotice':0," +"'Cost':1.0," +"'OtherCost':1.0," +"'Sender':" +"{" +"'Company':'LV','Name':'Taylor','Mobile':'15018442396','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'}," +"'Receiver':" +"{" +"'Company':'GCCUI','Name':'Yann','Mobile':'15018442396','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'}," +"'Commodity':" +"[{" +"'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}]," +"'Weight':1.0," +"'Quantity':1," +"'Volume':0.0," +"'Remark':'小心轻放'}";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1008");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(dataSign, "UTF-8"));params.put("DataType", "2");String result=sendPost(ReqURL, params); //根据公司业务处理返回的信息......return result;}/*** MD5加密* @param str 内容 * @param charset 编码方式* @throws Exception */@SuppressWarnings("unused")private String MD5(String str, String charset) throws Exception {MessageDigest md = MessageDigest.getInstance("MD5");md.update(str.getBytes(charset));byte[] result = md.digest();StringBuffer sb = new StringBuffer(32);for (int i = 0; i < result.length; i++) {int val = result[i] & 0xff;if (val <= 0xf) {sb.append("0");}sb.append(Integer.toHexString(val));}return sb.toString().toLowerCase();}/*** base64编码* @param str 内容 * @param charset 编码方式* @throws UnsupportedEncodingException */private String base64(String str, String charset) throws UnsupportedEncodingException{String encoded = base64Encode(str.getBytes(charset));return encoded; } @SuppressWarnings("unused")private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{String result = URLEncoder.encode(str, charset);return result;}/*** 电商Sign签名生成* @param content 内容 * @param keyValue Appkey * @param charset 编码方式* @throws UnsupportedEncodingException ,Exception* @return DataSign签名*/@SuppressWarnings("unused")private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception{if (keyValue != null){return base64(MD5(content + keyValue, charset), charset);}return base64(MD5(content, charset), charset);}/*** 向指定 URL 发送POST方法的请求 * @param url 发送请求的 URL * @param params 请求的参数集合 * @return 远程资源的响应结果*/@SuppressWarnings("unused")private String sendPost(String url, Map<String, String> params) {OutputStreamWriter out = null;BufferedReader in = null; StringBuilder result = new StringBuilder(); try {URL realUrl = new URL(url);HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// POST方法conn.setRequestMethod("POST");// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");conn.connect();// 获取URLConnection对象对应的输出流out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");// 发送请求参数 if (params != null) {StringBuilder param = new StringBuilder(); for (Map.Entry<String, String> entry : params.entrySet()) {if(param.length()>0){param.append("&");} param.append(entry.getKey());param.append("=");param.append(entry.getValue()); System.out.println(entry.getKey()+":"+entry.getValue());}System.out.println("param:"+param.toString());out.write(param.toString());}// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {result.append(line);}} catch (Exception e) { e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result.toString();}private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; public static String base64Encode(byte[] data) { StringBuffer sb = new StringBuffer(); int len = data.length; int i = 0; int b1, b2, b3; while (i < len) { b1 = data[i++] & 0xff; if (i == len) { sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[(b1 & 0x3) << 4]); sb.append("=="); break; } b2 = data[i++] & 0xff; if (i == len) { sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[(b2 & 0x0f) << 2]); sb.append("="); break; } b3 = data[i++] & 0xff; sb.append(base64EncodeChars[b1 >>> 2]); sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]); sb.append(base64EncodeChars[b3 & 0x3f]); } return sb.toString(); }
}
其他Api接口,请转到快递鸟具体查看相关文档。
账号注册
http://www.kdniao.com/reg?from=srwleo
温馨提示
如你的产品需对接或集成快递接口,快递鸟是不错的选择;会给您提供专业的技术支持人员;
快递鸟物流跟踪api相关推荐
- 快递鸟 物流跟踪订阅 即时查询快递 预约取件(在线下单)
/*** 快递鸟* 物流跟踪:* 1. 除天天快递.申通快递外,其他主流的快递公司都支持:* 2. 顺丰速运:仅支持通过快递鸟预约取件接口/电子面单接口发货的顺丰单号查询.* 3. 承诺达:仅支持通过 ...
- 快递鸟物流查询轨迹地图API接口案例代码java
一.接口描述/说明 1.即时查询(轨迹地图版)接口 (1)查询接口支持按照运单号查询(单个/批量查询). (2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息. 如:EMS物 ...
- 快递鸟物流查询接口java案例
说明 对接快递鸟物流API案例的全部代码都贴出来了,复制粘贴即可上手,需要注意配置文件数据一定要准确,1个配置文件,2个实体类,1个接口,1个接口实现类,总共5个文件. 1.配置文件 properti ...
- 快递鸟物流接口的调用
1.快递鸟物流接口相当简单 2.先按照官方要求注册一个人认证账号,申请所需要的技术服务 3.找到对应的api技术文档,拉倒最下面有个demo下载,下载对应的文件 4.复制里面的php代码,将其改成自己 ...
- 快递鸟物流追踪收费接口
/*** Json方式 物流信息订阅* @param string $shipper_code 快递公司编码* @param string $logistic_code 物流单号* @param st ...
- 电商平台对接第三方快递鸟物流轨迹查询api接口申请对接全流程
电商平台对接第三方快递物流轨迹查询api接口申请对接全流程 快递鸟查询API接口是使用的物流单号即可实现查询物流信息.主要应用在电商商城.ERP系统商.WMS系统商.快递柜.银行等企业.多家快递物流公 ...
- 免费对接快递鸟物流查询接口文档
轨迹查询类接口 1.在途监控 快递鸟汇集国内外1600多家快递公司的物流轨迹数据,以接口形式开放给用户使用,支持即时查询+订阅两种调用方式,为用户提供全流程的物流状态查询服务(包括已揽收.在途中.到达 ...
- 快递鸟物流查询接口调用
jfinal框架 (java)(小白工作笔记) http://www.kdniao.com/api-track 快递鸟官网接口(即时查询API) 订单号OrderCode为可选,快递公司编号Shipp ...
- 快递鸟代收货款接口API使用技术文档
1 用户信息类 1.1 用户注册接口 1.1.1 功能说明 为第三方平台用户提供注册接口,方便平台用户接入快递鸟服务,同时也方便快递鸟为平台用户提供查询.订阅.下单.金融等全方位物流服 ...
最新文章
- C功底挑战Java菜鸟入门概念干货(一)
- r语言中正定矩阵由于误差不正定_Kalman滤波在MOT中的应用(一)——理论篇
- [HDU] Tr A
- Verilog HDL中容易生成锁存器的两种情况
- docker Redis集群
- kf真空接头标准尺寸_大连高速旋转接头商家,什么是旋转接头_上海汉洲国际贸易...
- gcc中使用rpath指定优先搜索路径
- 后危机时代,DCS的新征程
- 高效Java实现敏感词过滤算法工具包
- 笔记 GWAS 操作流程2-1:缺失质控
- 每日excel学习之排序与筛选
- html页面加文字水印
- 网页版python编辑器-史上超强 Python 编辑器,竟然是张网页?!
- 类型多样的游戏特效网页特效素材,速来收藏
- Kong API Gateway 管理API详解
- 北航计算机控制系统实验报告,北航计算机控制系统实验报告教程.doc
- 20个国内Android平台移动应用市场
- HTML 为元素设置边框
- 最新StarrySky星空简约记录型模板源码+Typecho内核
- 【无标题】MySQL优化
热门文章
- http长连接 java_有关java实现http的长连接的问题
- 今日语录190414
- 优酷鸿蒙开发实践|优酷 Android 与HarmonyOS Hap 混合打包
- Qt获取当前时间日期或时间戳QDateTime
- 2003计算机应用基础题答案,《计算机应用基础》Excel2003练习题目答案.doc
- SQLServer中 ROUND函数、CAST 和 CONVERT函数 的使用详解
- 黑客炼金术士 Seeker:可以攻破 4G 摸到你短信,还要为朝阳群众提供谍战工具...
- 看到一个不错的前端面试题开源项目
- AWS AppSync 的基本语句
- java对接物联网api对接_一种对接物联网云平台的信息交互方法以及中间件系统与流程...