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 实现邮编查询——输入邮编,返回使用该邮编的地区名称。相关推荐

  1. java去除json 转移,Spring MVC返回的json去除根节点名称的方法

    这篇文章主要介绍了Spring MVC返回的json去除根节点名称的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 spring xml中配置视图如果是如下 那么返回结果会是: {" ...

  2. HTML + CSS + JS 利用邮编查询 API 实现邮编查询工具

    引言 邮政编码是地址信息的重要组成部分,可以帮助快递公司.物流公司等对地址进行快速.准确的识别和派送.因此,邮编查询工具应用在许多业务场景中都有广泛的应用,例如:电商平台.物流公司.金融机构等.通过使 ...

  3. 邮编查询/区号查询/证件查询 离线版/单机版

    受朋友之托,写了一个方便查询邮编的软件,在搜索框中直接粘贴输入完整地址,不用一个一个的去下拉框中选择, 便可跳出完整信息,闲来无事,顺便完善了一下,整个软件只有一个exe文件,完全精简化了,之前是存在 ...

  4. APISpace 邮编查询API

    APISpace 的 邮编查询API,提供全国邮政编码,数据权威准确,数百万条数据,精确到乡.村.街道.巷.可通过邮编查询地区名称,也可通地区名称及地址查询邮编.支持按模糊地址.指定区域地址查询邮编. ...

  5. ES8(Java API Client)查询详解

    根据我之前文章对 ES命令的查询使用,测试索引的文档数据前面文章有提到的. 下面我们就通过 ES8(Java API Client)来进行查询. 参考官方AP文档:https://www.elasti ...

  6. 使用Servlet和JSP开发Java应用程序 ---- 查询四六成绩

    使用Servlet和JSP开发Java应用程序 ---- 查询四六成绩 1. HTML页面 2. Servlet编写 3. Web.xml配置,进行注册Servlet 4. 完整程序的页面 1. HT ...

  7. java 必须是数字_[Java教程]限制只能输入数字

    [Java教程]限制只能输入数字 0 2016-05-16 14:00:06 当我们在一些网站注册账号.填写信息是,不小心将电话号码填写成汉字或其他英文字母了,这显然是不正确的.为了帮助用户更好地纠正 ...

  8. ibatis查询SQL语句返回一个对象,此对象包含一个List属性

    可能标题说的不是很明白,具体其实就是: 我需要查询一个用户,但是这个用户拥有多张试卷,所以我将试卷这个对象,作为User对象的一个属性,这个属性为List类型.这样我在SQL查询时直接查询user表返 ...

  9. Java微信订单查询

    版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8262004 ...

最新文章

  1. Git npm相关命令
  2. 什么是奇异值?奇异值分解是什么?SVD分解详解及实战
  3. 将图片资源文件整合到DLL文件中
  4. VideoTool之FFmpeg:FFmpeg的简介、安装、使用方法之详细攻略
  5. 在Outlook中修改脱机文件(.ost)的保存位置
  6. java红包雨_Java升职加薪课开发企业年会红包雨场景项目实战视频教程
  7. c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组
  8. 分享11款主流的开源编程工具
  9. Chrome图标的来历。
  10. [IT幽默]互联网的魔鬼词典
  11. LeetCode 22. Generate Parentheses
  12. 力扣题目——429. N 叉树的层序遍历
  13. 跨域技术-jsonp
  14. ECSHOP获取当前分类下商品的品牌列表
  15. 次世代教程_角色《佛特艾斯》制作具体分析
  16. movielens 1m 的mysql_MovieLens电影数据分析
  17. SFR算法详解(三)——浅析关于SFR的一些物理意义及原理
  18. Matlab求解线性规划
  19. 爱企查青龙可跑 一个月一张爱奇艺月卡最细教程
  20. LINUX IIO子系统分析之一 IIO子系统概述

热门文章

  1. windows server2021 R2 由于没有远程桌面授权服务器可以提供许可证,远程会话被中断
  2. Linux之管道命令
  3. 高薪程序员面试题精讲系列68之可重入锁、公平锁、自旋锁是怎么回事?
  4. 华为桌面云如何部署Linux,华为桌面云安装部署指南(19页)-原创力文档
  5. data,bss和rodata段的区别与联系
  6. Log4j日志的简单替代:JDK内置log的简单封装
  7. 【视频教程】Javascript ES6 教程39— ES6 ba
  8. java打印Excel表格
  9. 【软工视频】-软件需求分析
  10. 平板触控笔有哪些用途?适合ipad画画的电容笔推荐