个人网站:http://xiaocaoshare.com/

接口地址:https://lbs.qq.com/service/webService/webServiceGuide/webServiceDistrict

1.在pom.xml加入包依赖

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.4</version>
</dependency>

2.https请求工具类

package com.xiao;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;public class HttpsUtils {public static String METHOD_GET = "GET";public static String METHOD_POST = "POST";public static int DEF_CONNECT_TIMEOUT = 2 * 1000;public static int DEF_READ_TIMEOUT = 8 * 1000;public static Charset DEF_CHARSET = Charset.forName("UTF-8");public static void main(String[] args) {JSONObject x=HttpsUtils.doGetAuthorization("https://amzrealtime.despatchcloud.co.uk/ws/v1/wsfulfilment/list_fulfilment_clients");System.out.println(x);}public static JSONObject doGetAuthorization(String url) {Map<String, String> headers=new HashMap<>();headers.put("Authorization", "DC 454");String xx=HttpsUtils.Get(url, headers);return JSONObject.parseObject(xx);}public static TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {public java.security.cert.X509Certificate[] getAcceptedIssuers() {return new java.security.cert.X509Certificate[]{};}@Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}@Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}}};public static void trustAll() {try {SSLContext sc = SSLContext.getInstance("TLS");sc.init(null, trustAllCerts, new java.security.SecureRandom());HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());} catch (Exception e) {e.printStackTrace();}}static {trustAll();}public static String Get(String urlString) {return HttpsGo(urlString, METHOD_GET, null, null, DEF_CONNECT_TIMEOUT, DEF_READ_TIMEOUT);}public static String Get(String urlString, Map<String, String> headers) {return HttpsGo(urlString, METHOD_GET, headers, null, DEF_CONNECT_TIMEOUT, DEF_READ_TIMEOUT);}public static String Get(String urlString, Map<String, String> headers, Map<String, String> params) {if (params != null && params.isEmpty() == false) {StringBuffer url = new StringBuffer(urlString);try {boolean isFirst = true;if (urlString.contains("?")) {if (urlString.endsWith("&") == false && urlString.contains("&")) {isFirst = false;}} else {url.append('?');}String paramsEncoding = DEF_CHARSET.name();for (Map.Entry<String, String> entry : params.entrySet()) {if (isFirst) isFirst = false; else url.append('&');url.append(URLEncoder.encode(entry.getKey(), paramsEncoding));url.append('=');url.append(URLEncoder.encode(entry.getValue(), paramsEncoding));}} catch (Exception e) {}return Get(url.toString(), headers);} else {return Get(urlString, headers);}}public static String Post(String urlString, String contentType, byte[] content) {Map<String, String> headers = new HashMap<String, String>(1);headers.put("Content-Type", contentType);return HttpsGo(urlString, METHOD_POST, headers, content, DEF_CONNECT_TIMEOUT, DEF_READ_TIMEOUT);}public static String FormPost(String urlString, String content) {Map<String, String> headers = new HashMap<String, String>(1);headers.put("Content-Type", String.format("application/x-www-form-urlencoded; charset=%s", DEF_CHARSET.name()));return HttpsGo(urlString, METHOD_POST, null, content.getBytes(DEF_CHARSET), DEF_CONNECT_TIMEOUT, DEF_READ_TIMEOUT);}public static String XmlPost(String urlString, String content) {Map<String, String> headers = new HashMap<String, String>(1);headers.put("Content-Type", String.format("text/html; charset=%s", DEF_CHARSET.name()));return HttpsGo(urlString, METHOD_POST, headers, content.getBytes(DEF_CHARSET), DEF_CONNECT_TIMEOUT, DEF_READ_TIMEOUT);}public static String JsonPost(String urlString, Object content) {return JsonPost(urlString, JSONObject.toJSONString(content, SerializerFeature.DisableCircularReferenceDetect));}public static String JsonPost(String urlString, String content) {Map<String, String> headers = new HashMap<String, String>(1);headers.put("Content-Type", String.format("application/json; charset=%s", DEF_CHARSET.name()));return HttpsGo(urlString, METHOD_POST, headers, content.getBytes(DEF_CHARSET), DEF_CONNECT_TIMEOUT, DEF_READ_TIMEOUT);}public static String HttpsGo(String urlString, String method, Map<String, String> headers, byte[] content, int connectTimeout, int readTimeout) {HttpsURLConnection conn = null;try {conn = (HttpsURLConnection) new URL(urlString).openConnection();SSLContext sc = SSLContext.getInstance("SSL");sc.init(null, trustAllCerts, new SecureRandom());conn.setHostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String arg0, SSLSession arg1) {return true;}});conn.setSSLSocketFactory(sc.getSocketFactory());conn.setRequestMethod(method);conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);conn.setConnectTimeout(connectTimeout);conn.setReadTimeout(readTimeout);if (headers != null) {for (Map.Entry<String, String> entry : headers.entrySet()) {conn.addRequestProperty(entry.getKey(), entry.getValue());}}if (content != null) {if (headers == null || headers.containsKey("Content-Length") == false) {conn.addRequestProperty("Content-Length", Integer.toString(content.length));}OutputStream output = null;try {output = conn.getOutputStream();output.write(content);output.flush();} finally {if (output != null) try { output.close(); } catch (Exception e) { }}}return readContent(conn.getResponseCode() == 200 ? conn.getInputStream() : conn.getErrorStream(), getCharset(conn));} catch (Exception e) {return null;} finally {if (conn != null) conn.disconnect();}}public static String encodeParams(Map<String, String> params, String paramsEncoding) throws Exception {boolean isFirst = true;StringBuilder encodedParams = new StringBuilder();for (Map.Entry<String, String> entry : params.entrySet()) {if (isFirst) isFirst = false; else encodedParams.append('&');encodedParams.append(URLEncoder.encode(entry.getKey(), paramsEncoding));encodedParams.append('=');encodedParams.append(URLEncoder.encode(entry.getValue(), paramsEncoding));}return encodedParams.toString();}public static String CHARSET_DEF = DEF_CHARSET.name();private static String CHARSET_STR = "charset=";private static int CHARSET_STR_LEN = CHARSET_STR.length();private static String getCharset(HttpURLConnection conn) {String contentType = conn.getHeaderField("Content-Type");int length = contentType != null ? contentType.length() : 0;if (length < CHARSET_STR_LEN) {return CHARSET_DEF;}int pos = contentType != null ? contentType.indexOf("charset=") : -1;if (pos < 0) {return CHARSET_DEF;}return contentType.substring(pos + CHARSET_STR_LEN);}private static String readContent(InputStream input, String charset) throws Exception {try {int APPEND_LEN = 4 * 1024;int offset = 0;byte[] data = new byte[APPEND_LEN];while (true) {int len = input.read(data, offset, data.length - offset);if (len == -1) {break;}offset += len;if (offset >= data.length) {data = Arrays.copyOf(data, offset + APPEND_LEN);}}return charset != null ? new String(data, 0, offset, charset) : new String(data, 0, offset);} finally {if (input != null) try { input.close(); } catch (Exception e) { }}}
}

3.解析数据

//解析省
JSONObject jsonObject = JSONObject.parseObject(HttpsUtils.Get("https://apis.map.qq.com/ws/district/v1/list?key=DFEBZ-FC3AU-A24VQ-2ZAAZ-AAGQK-ZHBZJ"));
JSONArray array=jsonObject.getJSONArray("result");
JSONArray s1=array.getJSONArray(0);
JSONObject js=new JSONObject();
Map<Object, Object> map1=new HashMap<>();
Map<Object, Object> map2=new HashMap<>();
Map<Object, Object> map3=new HashMap<>();
for(int i=0;i<s1.size();i++){js=s1.getJSONObject(i);map1.put(js.get("id"),js.get("fullname"));
}//解析市
JSONObject jsonObject1=JSONObject.parseObject(HttpsUtils.Get("https://apis.map.qq.com/ws/district/v1/getchildren?key=DFEBZ-FC3AU-A24VQ-2ZAAZ-AAGQK-ZHBZJ&id=110000"));
JSONArray array1=jsonObject1.getJSONArray("result");
JSONArray array2=array1.getJSONArray(0);
for(int i=0;i<array2.size();i++){js=array2.getJSONObject(i);map2.put(js.get("id"),js.get("fullname"));
}//解析县
JSONObject jsonObject2=JSONObject.parseObject(HttpsUtils.Get("https://apis.map.qq.com/ws/district/v1/getchildren?key=DFEBZ-FC3AU-A24VQ-2ZAAZ-AAGQK-ZHBZJ&id=110101"));
JSONArray array3=jsonObject2.getJSONArray("result");
JSONArray array4=array3.getJSONArray(0);
for(int i=0;i<array4.size();i++){js=array4.getJSONObject(i);map3.put(js.get("id"),js.get("fullname"));
}//遍历省
for(Map.Entry<Object,Object> map:map1.entrySet()){System.out.println(map.getKey().toString()+"====================>"+map.getValue());
}
//遍历市
for(Map.Entry<Object,Object> map:map2.entrySet()){System.out.println(map.getKey().toString()+"====================>"+map.getValue());
}
//遍历区
for(Map.Entry<Object,Object> map:map3.entrySet()){System.out.println(map.getKey().toString()+"====================>"+map.getValue());
}

解析腾讯行政区划API接口数据相关推荐

  1. java jsoup解析开彩网api接口json数据实例

    https://www.cnblogs.com/zdz8207/p/7288830.html 开彩网apiJava技术学习 https://www.itkc8.com json-lib-2.4-jdk ...

  2. python调用(百度云、腾讯云)API接口表格识别并保存为excel

    Python表格识别 图像识别具有较高的商业价值,本节主要通过python调用(百度云.腾讯云)API接口表格识别并保存为excel分析表格识别的能力: 提示:需分别申请密钥,在相应位置添加自己密钥即 ...

  3. Java腾讯会议api接口,创建会议、查询会议,取消会议调用实例,以及踩过的坑

    最近公司需要做一个腾讯会议API的对接,经过查看官方文档和腾讯相关技术人员周旋~~以及不断踩坑,终于在我的不懈努力下,成功将API接口调通了 腾讯会议API接口文档:https://cloud.ten ...

  4. 酷狗音乐web端API接口数据

    酷狗音乐web端API接口数据 发表于 2017-07-16 | 分类于 api 酷狗音乐web端API接口数据分析 酷狗音乐Web端音乐API接口数据整理,以下接口数据已整理封装在我的基于Node. ...

  5. 淘宝api接口数据和爬虫数据教程

    淘宝api接口数据和爬虫数据教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必须以GET方式拼接在URL中,点击获取请 ...

  6. 分享第三方免费API接口数据

    聚合的免费API接口数据: 手机号码归属地API接口:https://www.juhe.cn/docs/api/id/11 历史上的今天API接口:https://www.juhe.cn/docs/a ...

  7. 淘宝价格监控erp选品,API接口数据可高并发

    价格监控 包括商品标题.店铺名 称.商品名称.商品型号.正常价格.低价.促销信息等 40+个字段,页面信息覆盖率达98%. 专业技术人员配置采集任务,选用恰当关键词,保证目标链链覆盖全面:系统多重防丢 ...

  8. 小程序与后台 api接口数据交互详解(微信报修小程序源码讲解七)

    完成用户授权登录逻辑后,接下来的开发工作大部分都是与后台 api 接口的交互,本节我们详细讲解一下小程序如何与 api 进行交互 . 小程序如何发送 http/https 请求到后台? 小程序请求 h ...

  9. 新型冠状病毒全国疫情新浪腾讯网易API接口json

    一.新浪提供的接口地址: https://interface.sina.cn/news/wap/fymap2020_data.d.json 二.163提供的接口地址: 官方展示: https://ne ...

最新文章

  1. ubuntu下查看IP Gateway DNS信息
  2. mysql 最大链接数 max_connections 设置
  3. chromebook刷机_如何在Chromebook上拍照
  4. Lambda 表达式详解~Stream Pipelines
  5. 一张图告诉你,自学编程和科班程序员的差别在哪
  6. 数列分块入门 2(LibreOj-6278)
  7. 一双木棋chess[九省联考2018]
  8. [论文阅读] IL2M: Class Incremental Learning With Dual Memory
  9. 重新认识一个强大的 Gson
  10. stm32核心板可以点亮灯吗_利用STM32F103C8T6最小系统板点亮流水灯
  11. 苹果手机壳_潮牌刺绣苹果8 Plus手机壳,让爱机焕然一新
  12. 40个Java多线程问题总结【转】
  13. Html中所有的a标签点击打开新的窗口
  14. windows xp sp2的产品密钥
  15. 【历史上的今天】2 月 11 日:首款 Ubuntu 手机问世;苹果的天使投资人诞生;电子工业联盟正式停运
  16. 中文大写日期转换函数
  17. MP4、 MPEG-4区别
  18. 微信和抖音都到十亿级用户了,作为产品经理的你们觉得哪个产品更成功?
  19. 小尺寸android 手机推荐,喜欢小屏安卓手机的来看看,这三款便宜又好用
  20. Config配置文件操作

热门文章

  1. java基础(十三)-----详解内部类——Java高级开发必须懂的
  2. finecms设置伪静态后分享到微信不能访问怎么处理
  3. phpstudy+phpstorm+debug
  4. LINQ获取两个List的交集
  5. JAX_WS 2.2 规范的webservices客户端实现(Axis2,Cxf)
  6. window.name实现的跨域数据传输
  7. SQL Server 中master..spt_values的应用
  8. Linux文件压缩与解压缩
  9. 建立可扩展的silverlight应用框架 step-4
  10. [ZT]SQL Server 的事务日志意外增大或充满的处理方法