`

Java 实现快递查询 (免费) ,不用输入验证码

    博客分类:
  • Java
阅读更多

查快递的时候发现了一个http://www.kaidi100.com 是金蝶旗下的下个网站,做得很不错,几乎可以查所以的快递公司的,该站提供了API查询快递,API需要申请key.申请Key需要做它网站链接。无奈,哥的网站早到期,没续费了,于是trace了一把请求,直接用Java httpurlconnection 搞起,只是给个例子,可以再接着封装。中间遇到过乱码问题,最后发现是内容进行了gzip压缩,trace时候没有仔细看response header ,吃了回亏 教训。

 

package com.hailsoft.test;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.zip.GZIPInputStream;


/**
 * @author admin
 *
 */
public class App {
	public static void main(String[] args) {
		String url = "http://www.kuaidi100.com/query?type=shentong&postid=请更换为你的申通运单号&id=1&valicode=&temp=0.3015635129995644";
		
		try {
			HttpURLConnection.setFollowRedirects(true);
			HttpURLConnection http = (HttpURLConnection) (new URL(url).openConnection());
			http.setDoOutput(true);
			http.setDoOutput(true);
			http.setInstanceFollowRedirects(true);
			http.setRequestMethod("GET");
			http.setRequestProperty("Connection", "keep-alive");
			http.setRequestProperty("X-Requested-With", "XMLHttpRequest");
			http.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.92 Safari/537.1 LBBROWSER");
			http.setRequestProperty("Accept", "*/*");
			http.setRequestProperty("Referer", "http://www.kuaidi100.com/");
			http.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
			http.setRequestProperty("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3");
			http.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
			
			System.out.println("response  is : "+http.getResponseCode()+" "+http.getResponseMessage());
			String contentEncoding = http.getContentEncoding();
			System.out.println("response  encoding is : "+contentEncoding);
			InputStream  in = null;
			if("gzip".equalsIgnoreCase(contentEncoding)){
				in = new GZIPInputStream(http.getInputStream()); 
			}else{
				in = http.getInputStream();
			}
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			int data = -1;
			while((data = in.read())!=-1){
				baos.write(data);
			}
			String resp = baos.toString("utf8");
			System.out.println(resp);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
}

 

 

分享到:
评论

相关推荐

    基于Java的校园二手物品交易网站的设计与实现.docx

    基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第1页。基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第1页。基于Java的校园二手物品交易网站的设计与实现 基于Java的校园二手物品...

    java范例开发大全源代码

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置...

    java范例开发大全

    第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java...

    Java范例开发大全 (源程序)

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置是否成功 7...

    Java毕业设计:基于SpringBoot的“校园帮”微信小程序(源码+文档+PPT+录像演示).zip

    快递和外卖需要实现支付功能。发布界面都要实现上传图片功能。填写发布信息时手机号码和微信号自动获取用户注册时填写的,可以进行修改。 接单模块。按快递、外卖、求助分类,可以按照酬金高低、宿舍、时间进行筛选...

    Java范例开发大全(全书源程序)

    Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...

    校园订单管理系统.Java大作业..zip

    必须要输入验证码 购物车存放在redis当中,限制频繁登陆。防止跑库。 主要数据存放在mongodb 登陆界面 注册界面 用户界面 管理员界面 厨师界面 送货界面 消费者 厨师 快递小哥 店主 同时操作需要使用线程同步 ...

    java范例开发大全(pdf&源码)

    第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java...

    Java毕业设计:基于SSM的萌宠优购系统的设计(源码+文档+录像演示).zip

    Java;SSM;MySQL; 萌宠优购系统的开发主要是对购物车以及商品管理等功能的设计,用现有的技术进行系统设计,快速的处理信息。与管理员而言要方便对信息进行管理,而与用户交互的界面需要更美观、更具操作性,让...

    基于微信小程序的“校园帮”系统设计与实现+毕业论文

    快递和外卖需要实现支付功能。发布界面都要实现上传图片功能。填写发布信息时手机号码和微信号自动获取用户注册时填写的,可以进行修改。 4、接单模块。按快递、外卖、求助分类,可以按照酬金高低、宿舍、时间进行...

    基于SpringBoot的“校园帮”微信小程序.zip

    快递和外卖需要实现支付功能。发布界面都要实现上传图片功能。填写发布信息时手机号码和微信号自动获取用户注册时填写的,可以进行修改。 接单模块。按快递、外卖、求助分类,可以按照酬金高低、宿舍、时间进行筛选...

    基于SSM的萌宠优购系统的设计.zip

    Java;SSM;MySQL; 萌宠优购系统的开发主要是对购物车以及商品管理等功能的设计,用现有的技术进行系统设计,快速的处理信息。与管理员而言要方便对信息进行管理,而与用户交互的界面需要更美观、更具操作性,让...

    springboot 自习室座位预约系统 (源码+数据库)674156

    自习室座位预约系统,在系统首页...自习室信息管理,在自习室信息管理页面可添加自习室名称、开放时间、自习室类型、开放时间、地址、座位类型、自习室简介等信息,并可根据需要在快递代拿查询页面进行修改或删除等操作

Global site tag (gtag.js) - Google Analytics