引入架包

 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.29</version></dependency><dependency><groupId>com.vaadin.external.google</groupId><artifactId>android-json</artifactId><version>0.0.20131108.vaadin1</version><scope>compile</scope></dependency>

官方文件一:mainApp

package com.bc.user.manager;import static java.lang.System.out;import java.io.IOException;
import java.util.regex.Pattern;import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.client.methods.HttpHead;
import org.json.JSONException;
import org.json.JSONObject;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;/*** @program: wd-saas* @description: 第三方企查查调用接口类* @author: dd* @create: 2019年9月26日12:11:18**/public class mainApp{// 请登录http://yjapi.com/DataCenter/MyData// 查看我的秘钥 我的Keyprivate static final String appkey = "*企查查上的key";private static final String seckey = "*企查查上的seckey";public static String searchEnterpriseName(String enterpriseName) throws Exception {String reqInterNme = "http://api.qichacha.com/ECIV4/Search";String paramStr = "keyword=" + enterpriseName;String status = "";// auth header settingHttpHead reqHeader = new HttpHead();String[] autherHeader = RandomAuthentHeader();reqHeader.setHeader("Token", autherHeader[0]);reqHeader.setHeader("Timespan", autherHeader[1]);final String reqUri = reqInterNme.concat("?key=").concat(appkey).concat("&").concat(paramStr);String tokenJson = HttpHelper.httpGet(reqUri, reqHeader.getAllHeaders());out.println(String.format("==========================>this is response:{%s}", tokenJson));// parse status from jsonstatus = FormartJson(tokenJson, "Status");out.println(String.format("==========================>Status:{%s}", status));if (!HttpCodeRegex.isAbnornalRequest(status)) {PrettyPrintJson(tokenJson);}return tokenJson;}// 获取返回码 Res Codepublic static class HttpCodeRegex {private static final String ABNORMAL_REGIX = "(101)|(102)";private static final Pattern pattern = Pattern.compile(ABNORMAL_REGIX);protected static boolean isAbnornalRequest(final String status) {return pattern.matcher(status).matches();}}// 获取Auth Codepublic static final String[] RandomAuthentHeader() {String timeSpan = String.valueOf(System.currentTimeMillis() / 1000);String[] authentHeaders = new String[]{DigestUtils.md5Hex(appkey.concat(timeSpan).concat(seckey)).toUpperCase(), timeSpan};return authentHeaders;}// 解析JSONpublic static String FormartJson(String jsonString, String key) throws JSONException {JSONObject jObject = new JSONObject(jsonString);return (String) jObject.get(key);}// pretty print 返回值public static void PrettyPrintJson(String jsonString) throws JSONException {try {ObjectMapper mapper = new ObjectMapper();Object obj = mapper.readValue(jsonString, Object.class);String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);out.println(indented);} catch (JsonProcessingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

其中 HttpHelper.httpGet方法是HttpHelper类里的方法
HttpHelper方法:

package com.bc.user.manager;import static java.lang.System.out;import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;/*** 描述 http请求处理模块<br>** @author szld<br>* @version 1.0 <br>* 日期:2019年7月31日 下午2:23:41*/
public class HttpHelper {// get 请求public static String httpGet(String url, Header[] headers) throws Exception {HttpUriRequest uriRequest = new HttpGet(url);if (null != headers) {uriRequest.setHeaders(headers);}CloseableHttpClient httpClient = null;try {httpClient = declareHttpClientSSL(url);CloseableHttpResponse httpresponse = httpClient.execute(uriRequest);HttpEntity httpEntity = httpresponse.getEntity();String result = EntityUtils.toString(httpEntity, REQ_ENCODEING_UTF8);return result;} catch (ClientProtocolException e) {out.println(String.format("http请求失败,uri{%s},exception{%s}", new Object[]{url, e}));} catch (IOException e) {out.println(String.format("IO Exception,uri{%s},exception{%s}", new Object[]{url, e}));} finally {if (null != httpClient) {httpClient.close();}}return null;}// post 请求public static String httpPost(String url, String params) throws Exception {HttpPost post = new HttpPost(url);post.addHeader("Content-Type", "application/json;charset=" + REQ_ENCODEING_UTF8);// 设置传输编码格式StringEntity stringEntity = new StringEntity(params, REQ_ENCODEING_UTF8);stringEntity.setContentEncoding(REQ_ENCODEING_UTF8);post.setEntity(stringEntity);HttpResponse httpresponse = null;CloseableHttpClient httpClient = null;try {httpClient = declareHttpClientSSL(url);httpresponse = httpClient.execute(post);HttpEntity httpEntity = httpresponse.getEntity();String result = EntityUtils.toString(httpEntity, REQ_ENCODEING_UTF8);return result;} catch (ClientProtocolException e) {out.println(String.format("http请求失败,uri{%s},exception{%s}", new Object[]{url, e}));} catch (IOException e) {out.println(String.format("IO Exception,uri{%s},exception{%s}", new Object[]{url, e}));} finally {if (null != httpClient) {httpClient.close();}}return null;}private static CloseableHttpClient declareHttpClientSSL(String url) {if (url.startsWith("https://")) {return sslClient();} else {return HttpClientBuilder.create().setConnectionManager(httpClientConnectionManager).build();}}/*** 设置SSL请求处理** @param*/private static CloseableHttpClient sslClient() {try {SSLContext ctx = SSLContext.getInstance("TLS");X509TrustManager tm = new X509TrustManager() {@Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}@Overridepublic void checkClientTrusted(X509Certificate[] xcs, String str) {}@Overridepublic void checkServerTrusted(X509Certificate[] xcs, String str) {}};ctx.init(null, new TrustManager[]{tm}, null);SSLConnectionSocketFactory sslConnectionSocketFactory = SSLConnectionSocketFactory.getSocketFactory();return HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();} catch (NoSuchAlgorithmException e) {throw new RuntimeException(e);} catch (KeyManagementException e) {throw new RuntimeException(e);}}// this is configprivate static final String REQ_ENCODEING_UTF8 = "utf-8";private static PoolingHttpClientConnectionManager httpClientConnectionManager;public HttpHelper() {httpClientConnectionManager = new PoolingHttpClientConnectionManager();httpClientConnectionManager.setMaxTotal(100);httpClientConnectionManager.setDefaultMaxPerRoute(20);}// get 请求public static String httpGet(String url) throws Exception {return httpGet(url, null);}
}

如果出先第一行编码错误,
就把此处变
此处的编码格式改为GDK,在改回去,就ok了

调用该方法
String nameJson = mainApp.searchEnterpriseName(name);
将查找的json转化为list
Object enterpriseAppSearch = JSONObject.parseObject(nameJson, Object.class);

调用企查查上的接口,实现通过公司名称查询公司列表相关推荐

  1. 编写Python脚本调用企查查股东信息接口将数据导出为excel文件

    此文章已同步更新至我的个人博客https://simonting.gitee.io 前言 调用企查查的API获取一万多家公司股东信息数据导出为excel文件. 1.设置IP白名单 IP获取建议使用百度 ...

  2. python 调用企查查接口平台

    一.需求: 通过内部系统导出企业信息数据后,筛选状态为"正常"的企业数据.然后拿筛选后的企业去查询该企业的工商数据. 开始是在国家企业信息公示系统中查询,由于查询数据量过大,后改用 ...

  3. Golang 调用http 文件上传接口 进行上传文件

    远程服务器有一个文件上传接口,文件用于保存到服务器本地,用go如何调用此接口将文件上传至服务器? 首先,文件上传请求方 与 接收方 要协调工作(解析等工作) 接收方: func UploadFileT ...

  4. 企查查在哪查实缴_如何查询一家企业的注册资金是实缴的还是认缴的?

    展开全部 操作2113如下: 1.百度搜索"国家企业信用5261信息4102公示系统",点击官网 2.输入1653企业名称.统一社版会信用权代码或注册号,点击查询 3.点击查询结果 ...

  5. 调用企查查第三方Api:企业工商模糊搜索

    1.首先需要设置token,API中要求token的格式为key+Timespan+SecretKey组成的32位md5加密的大写字符串,可以调用hutool里的SecureUtil工具类,但是生成的 ...

  6. java 调用企查查API查询企业信息

    效果图: 首先需要设置token,API中要求token的格式为key+Timespan+SecretKey组成的32位md5加密的大写字符串,所以我也附赠了MD5加密的工具类.token要放在htt ...

  7. 使用python程序抓取天眼查,企查查和爱企查上的企业基本信息

    本文说明使用python程序自动抓取天眼查或者企查查上的企业基本信息.本文中的程序仅供学习参考,请通过正规渠道获取相应的数据资产. 工程目录如下: w3目录下内容为: 工程中的部分源码如下. 文件pa ...

  8. 读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储

    2019独角兽企业重金招聘Python工程师标准>>> 今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的 ...

  9. python 爬取企业注册信息_读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储...

    今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的编程环境是: python3.6 BeautifulSoup模块 lxml ...

最新文章

  1. POJ3114强连通+spfa
  2. 2.1Python基础语法(一)之注释与数据类型:
  3. 8天学通MongoDB——第五天 主从复制
  4. DOM-14 【实战】解决事件代理和鼠标移动事件的窘态
  5. oracle之单行函数之子查询之课后练习
  6. REST framework 权限管理源码分析
  7. Linux通过SSH实现免密登录
  8. .NET中的异步编程(一)-为什么需要异步
  9. 平台卖家要不要做独立站?
  10. linux连接苹果鼠标,Linux 5.13添加对苹果Magic Mouse 2和微软SAM的支持
  11. 阿里电话面试经过与总结
  12. html如何将汉字转换成英文,中文字体转化为英文或转码
  13. c语言计算个人所得税作业,C语言用文件计算个人所得税
  14. Springboot 使用 Guava 的重试Retry ,轻便灵活
  15. 计算机抠图知识,计算机PS抠图方法.doc
  16. NEFU 大一寒假培训【一】二维数组、结构体
  17. CentOS 8安装 GVM20.08
  18. CA认证原理以及实现(上)
  19. TTL的含义是什么?
  20. Linux使用非root用户在根目录中创建文件夹

热门文章

  1. 【零基础绘画教程】procreate超详细用法讲解 视频入门教程全
  2. MenuetOS, FreeDOS 有了新的发行
  3. 光猫及二级路由器Openwrt均开启IPv6,满足双层网络内IPv6的获取
  4. VMware虚拟机 之 NAT模式详解
  5. 【图解相对论系列1】怎样直观地理解张量(Tensor)?爱因斯坦广义相对论的数学基础...
  6. Using QByteRef with an index pointing outside the valid range of a QByteArray
  7. ExoPlayer播放器剖析(一)进入ExoPlayer的世界
  8. 关于java中method.invoked 传入类型不一样的问题
  9. 银行卡识别技术-移动支付新宠儿
  10. android mvp mvvm ppt,Android中MVC MVP MVVM模式