java调用爱查快递接口
2015-09-11 17:17
274 查看
//方法
package common;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import entry.Context;
import net.sf.json.JSONObject;
public class icha {
//爱查快递key_ID
public static String ichaID="";
//爱查快递key值
public static String ichaSecret="";
//快递订单
public static String nu="";
//快递公司代码
public static String com="";
//字体编码格式
public static String encode="utf8";
public static void main(String[] agrs)
{
try {
URL url= new URL("http://api.ickd.cn/?id="+ichaID+"&secret="+ichaSecret+"&com="+com+"&nu="+nu+"&encode="+encode+"");
URLConnection con=url.openConnection();
con.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
String type = con.guessContentTypeFromStream(urlStream);
String charSet=null;
if (type == null)
type = con.getContentType();
if (type == null || type.trim().length() == 0 || type.trim().indexOf("text/html") < 0)
return ;
if(type.indexOf("charset=") > 0)
charSet = type.substring(type.indexOf("charset=") + 8);
byte b[] = new byte[10000];
int numRead = urlStream.read(b);
String content = new String(b, 0, numRead);
while (numRead != -1) {
numRead = urlStream.read(b);
if (numRead != -1) {
//String newContent = new String(b, 0, numRead);
String newContent = new String(b, 0, numRead, charSet);
content += newContent;
}
}
JSONObject obj = JSONObject.fromObject(content);
System.out.println(obj);
Context context = (Context)JSONObject.toBean(obj,Context.class);
System.out.println(context.getExpTextName());
System.out.println(context.getMailNo());
System.out.println(context.getData());
System.out.println(context.getTel());
urlStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//实体类
package entry;
import java.util.List;
import java.util.Map;
public class Context {
//查询结果状态,0|1|2|3|4,0表示查询失败,1正常,2派送中,3已签收,4退回,5其他问题
private int status;
//错误代码,0无错误,1单号不存在,2验证码错误,3链接查询服务器失败,4程序内部错误,5程序执行错误,
//6快递单号格式错误,7快递公司错误,10未知错误,20API错误,21API被禁用,22API查询量耗尽。
private int errCode;
//错误消息
private String message;
//进度
private List<Map<String,Object>> data;
//快递单号
private String mailNo;
//快递公司英文代码(预留)
private String expSpellName;
//快递公司中文名称
private String expTextName;
//最后更新时间(预留)
private String update;
//排序,ASC | DESC
private String ord;
//返回的快递电话
private String tel;
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getErrCode() {
return errCode;
}
public void setErrCode(int errCode) {
this.errCode = errCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<Map<String, Object>> getData() {
return data;
}
public void setData(List<Map<String, Object>> data) {
this.data = data;
}
public String getMailNo() {
return mailNo;
}
public void setMailNo(String mailNo) {
this.mailNo = mailNo;
}
public String getExpSpellName() {
return expSpellName;
}
public void setExpSpellName(String expSpellName) {
this.expSpellName = expSpellName;
}
public String getExpTextName() {
return expTextName;
}
public void setExpTextName(String expTextName) {
this.expTextName = expTextName;
}
public String getUpdate() {
return update;
}
public void setUpdate(String update) {
this.update = update;
}
public String getOrd() {
return ord;
}
public void setOrd(String ord) {
this.ord = ord;
}
}
package common;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import entry.Context;
import net.sf.json.JSONObject;
public class icha {
//爱查快递key_ID
public static String ichaID="";
//爱查快递key值
public static String ichaSecret="";
//快递订单
public static String nu="";
//快递公司代码
public static String com="";
//字体编码格式
public static String encode="utf8";
public static void main(String[] agrs)
{
try {
URL url= new URL("http://api.ickd.cn/?id="+ichaID+"&secret="+ichaSecret+"&com="+com+"&nu="+nu+"&encode="+encode+"");
URLConnection con=url.openConnection();
con.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
String type = con.guessContentTypeFromStream(urlStream);
String charSet=null;
if (type == null)
type = con.getContentType();
if (type == null || type.trim().length() == 0 || type.trim().indexOf("text/html") < 0)
return ;
if(type.indexOf("charset=") > 0)
charSet = type.substring(type.indexOf("charset=") + 8);
byte b[] = new byte[10000];
int numRead = urlStream.read(b);
String content = new String(b, 0, numRead);
while (numRead != -1) {
numRead = urlStream.read(b);
if (numRead != -1) {
//String newContent = new String(b, 0, numRead);
String newContent = new String(b, 0, numRead, charSet);
content += newContent;
}
}
JSONObject obj = JSONObject.fromObject(content);
System.out.println(obj);
Context context = (Context)JSONObject.toBean(obj,Context.class);
System.out.println(context.getExpTextName());
System.out.println(context.getMailNo());
System.out.println(context.getData());
System.out.println(context.getTel());
urlStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//实体类
package entry;
import java.util.List;
import java.util.Map;
public class Context {
//查询结果状态,0|1|2|3|4,0表示查询失败,1正常,2派送中,3已签收,4退回,5其他问题
private int status;
//错误代码,0无错误,1单号不存在,2验证码错误,3链接查询服务器失败,4程序内部错误,5程序执行错误,
//6快递单号格式错误,7快递公司错误,10未知错误,20API错误,21API被禁用,22API查询量耗尽。
private int errCode;
//错误消息
private String message;
//进度
private List<Map<String,Object>> data;
//快递单号
private String mailNo;
//快递公司英文代码(预留)
private String expSpellName;
//快递公司中文名称
private String expTextName;
//最后更新时间(预留)
private String update;
//排序,ASC | DESC
private String ord;
//返回的快递电话
private String tel;
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getErrCode() {
return errCode;
}
public void setErrCode(int errCode) {
this.errCode = errCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<Map<String, Object>> getData() {
return data;
}
public void setData(List<Map<String, Object>> data) {
this.data = data;
}
public String getMailNo() {
return mailNo;
}
public void setMailNo(String mailNo) {
this.mailNo = mailNo;
}
public String getExpSpellName() {
return expSpellName;
}
public void setExpSpellName(String expSpellName) {
this.expSpellName = expSpellName;
}
public String getExpTextName() {
return expTextName;
}
public void setExpTextName(String expTextName) {
this.expTextName = expTextName;
}
public String getUpdate() {
return update;
}
public void setUpdate(String update) {
this.update = update;
}
public String getOrd() {
return ord;
}
public void setOrd(String ord) {
this.ord = ord;
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Manifest 用法
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- Spark RDD API详解(一) Map和Reduce
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序