申通快递轨迹查询----java完整demo

开发前需先申请接口API。话不多说,直接上代码,发送的参数可以参考申通开放平台的开发文档 申通开放平台- -快递轨迹查询 下面放一张摘自申通开放平台的对接图片。
摘自申通开放平台

public class UPostMethod extends PostMethod {
	 public UPostMethod(String url){
		 super(url);
	 }
	 @Override
	 public String getRequestCharSet(){
		 return "UTF-8";//设置发送参数的编码格式
	 }
}
//正式环境调用接口
private static final String url = "http://cloudinter-linkgatewayonline.sto.cn/gateway/link.do";
	
//测试环境调用接口
private static final String testUrl = "http://cloudinter-linkgatewaytest.sto.cn/gateway/link.do";

//deliveryCode 是物流单号
public static  String doPost( String deliveryCode ) throws Exception {
		  HttpClient client = new HttpClient();
		  client.getHttpConnectionManager().getParams().setConnectionTimeout(3000);
		  client.getHttpConnectionManager().getParams().setSoTimeout(3000);
		 
		  PostMethod method = new UPostMethod(url);//UPostMethod继承PostMethod,见下所示
		  
		  String result = "";
		  
		  try {
			  	//JSONObject jsonObject = new JSONObject();
				JSONObject jsonObject1 = new JSONObject();
				List<String> list = new ArrayList<>();
				list.add(deliveryCode); //填写查询物流单号
				
				//以下信息不需要动,测试环境和正式环境的参数值一样
				jsonObject1.put("waybillNoList", list);
				//jsonObject1.put("order", "asc");
				//System.out.println(jsonObject1.toString());
				String data_digest = calculateDigest(jsonObject1.toString(), "你的secretKey");
				//System.out.println(data_digest);
			    method.addParameter("content",jsonObject1.toString());
			    method.addParameter("data_digest",data_digest);
			    method.addParameter("api_name", "你的api_name");
			    
			    method.addParameter("from_appkey", "你的from_appkey");
			    method.addParameter("from_code", "你的from_code");
			    method.addParameter("to_appkey", "你的to_appkey");
			    method.addParameter("to_code", "你的to_code");
			    
			    client.executeMethod(method);
			    byte[] response = method.getResponseBody();
			    result = new String(response,"UTF-8");//返回值解析时用的编码格式
			    //System.out.println(result);
		  } catch (Exception e) {
			    throw new RuntimeException("创建连接失败" + e);
		  }finally{
			    method.releaseConnection();
		  }
		  result = result.replace(deliveryCode, "deliveryCode");
		  return result;
	}
/***
	 * 物流轨迹查询签名
	 * @param content  
	 * @param secretKey
	 * @return
	 */
	public static String calculateDigest(String content, String secretKey) {
	    String text = content + secretKey;
	    byte[] md5 = DigestUtils.md5(text);
	    return Base64.encodeBase64String(md5);
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值