JAVA 实现邮编查询——输入邮编,返回使用该邮编的地区名称。
package 邮编查询11;import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
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.util.Scanner;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;public class Post_check {public static final String DEF_CHATSET = "UTF-8";public static final int DEF_CONN_TIMEOUT = 30000;public static final int DEF_READ_TIMEOUT = 30000;public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";public static final String APPKEY="***********************";//需要替换public static void request(String post){String result =null;String url ="http://v.juhe.cn/postcode/query";//请求接口地址Map params = new HashMap();//请求参数params.put("postcode",post);//邮编,如:215001params.put("key",APPKEY);try {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);if(object.getInt("error_code")==0){//解析JSONObject集合得到所需要部分object=object.getJSONObject("result");JSONArray array=object.getJSONArray("list");object=array.getJSONObject(0);System.out.print(object.getString("Province"));System.out.print(object.getString("City"));System.out.print(object.getString("District"));}else{System.out.println("查询失败,失败详情如下:");System.out.println(object.get("error_code")+":"+object.get("reason"));}} catch (Exception e) {e.printStackTrace();}}public static String net(String strUrl, Map params,String method) throws Exception {HttpURLConnection conn = null;BufferedReader reader = null;String rs = null;try {StringBuffer sb = new StringBuffer();if(method==null || method.equals("GET")){strUrl = strUrl+"?"+urlencode(params);}URL url = new URL(strUrl);conn = (HttpURLConnection) url.openConnection();if(method==null || method.equals("GET")){conn.setRequestMethod("GET");}else{conn.setRequestMethod("POST");conn.setDoOutput(true);}conn.setRequestProperty("User-agent", userAgent);conn.setUseCaches(false);conn.setConnectTimeout(DEF_CONN_TIMEOUT);conn.setReadTimeout(DEF_READ_TIMEOUT);conn.setInstanceFollowRedirects(false);conn.connect();if (params!= null && method.equals("POST")) {try {DataOutputStream out = new DataOutputStream(conn.getOutputStream());out.writeBytes(urlencode(params));} catch (Exception e) {// TODO: handle exception}}InputStream is = conn.getInputStream();reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));String strRead = null;while ((strRead = reader.readLine()) != null) {sb.append(strRead);}rs = sb.toString();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {reader.close();}if (conn != null) {conn.disconnect();}}return rs;}//将map型转为请求参数型public static String urlencode(Map<String,Object>data) {StringBuilder sb = new StringBuilder();for (Map.Entry i : data.entrySet()) {try {sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}public static void main(String args[]){System.out.println("请输入想要查询邮编");Scanner sc=new Scanner(System.in);String post=sc.next();System.out.print("所输入邮编地址为:");request(post);}
}
APPKEY需要替换成所申请的API对应的APPKEY
JAVA 实现邮编查询——输入邮编,返回使用该邮编的地区名称。相关推荐
- java去除json 转移,Spring MVC返回的json去除根节点名称的方法
这篇文章主要介绍了Spring MVC返回的json去除根节点名称的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 spring xml中配置视图如果是如下 那么返回结果会是: {" ...
- HTML + CSS + JS 利用邮编查询 API 实现邮编查询工具
引言 邮政编码是地址信息的重要组成部分,可以帮助快递公司.物流公司等对地址进行快速.准确的识别和派送.因此,邮编查询工具应用在许多业务场景中都有广泛的应用,例如:电商平台.物流公司.金融机构等.通过使 ...
- 邮编查询/区号查询/证件查询 离线版/单机版
受朋友之托,写了一个方便查询邮编的软件,在搜索框中直接粘贴输入完整地址,不用一个一个的去下拉框中选择, 便可跳出完整信息,闲来无事,顺便完善了一下,整个软件只有一个exe文件,完全精简化了,之前是存在 ...
- APISpace 邮编查询API
APISpace 的 邮编查询API,提供全国邮政编码,数据权威准确,数百万条数据,精确到乡.村.街道.巷.可通过邮编查询地区名称,也可通地区名称及地址查询邮编.支持按模糊地址.指定区域地址查询邮编. ...
- ES8(Java API Client)查询详解
根据我之前文章对 ES命令的查询使用,测试索引的文档数据前面文章有提到的. 下面我们就通过 ES8(Java API Client)来进行查询. 参考官方AP文档:https://www.elasti ...
- 使用Servlet和JSP开发Java应用程序 ---- 查询四六成绩
使用Servlet和JSP开发Java应用程序 ---- 查询四六成绩 1. HTML页面 2. Servlet编写 3. Web.xml配置,进行注册Servlet 4. 完整程序的页面 1. HT ...
- java 必须是数字_[Java教程]限制只能输入数字
[Java教程]限制只能输入数字 0 2016-05-16 14:00:06 当我们在一些网站注册账号.填写信息是,不小心将电话号码填写成汉字或其他英文字母了,这显然是不正确的.为了帮助用户更好地纠正 ...
- ibatis查询SQL语句返回一个对象,此对象包含一个List属性
可能标题说的不是很明白,具体其实就是: 我需要查询一个用户,但是这个用户拥有多张试卷,所以我将试卷这个对象,作为User对象的一个属性,这个属性为List类型.这样我在SQL查询时直接查询user表返 ...
- Java微信订单查询
版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8262004 ...
最新文章
- Git npm相关命令
- 什么是奇异值?奇异值分解是什么?SVD分解详解及实战
- 将图片资源文件整合到DLL文件中
- VideoTool之FFmpeg:FFmpeg的简介、安装、使用方法之详细攻略
- 在Outlook中修改脱机文件(.ost)的保存位置
- java红包雨_Java升职加薪课开发企业年会红包雨场景项目实战视频教程
- c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组
- 分享11款主流的开源编程工具
- Chrome图标的来历。
- [IT幽默]互联网的魔鬼词典
- LeetCode 22. Generate Parentheses
- 力扣题目——429. N 叉树的层序遍历
- 跨域技术-jsonp
- ECSHOP获取当前分类下商品的品牌列表
- 次世代教程_角色《佛特艾斯》制作具体分析
- movielens 1m 的mysql_MovieLens电影数据分析
- SFR算法详解(三)——浅析关于SFR的一些物理意义及原理
- Matlab求解线性规划
- 爱企查青龙可跑 一个月一张爱奇艺月卡最细教程
- LINUX IIO子系统分析之一 IIO子系统概述