企查查接口full的实现
第一次写可能会有错误也可能不好,不喜勿喷
package net.atrunning.framework.qichacha;
import static java.lang.System.out;
import java.io.IOException;
import java.util.List;
import java.util.regex.Pattern;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.client.methods.HttpHead;
import org.json.JSONException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import net.atrunning.framework.qichacha.entity.Qichacha;
import net.atrunning.framework.qichacha.full.entity.QichachaFull;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* 获取企查查平台接口中的数据
* @author Administrator
*
*/
public class QueryToQichachaFullUtil {
// 请登录http://yjapi.com/DataCenter/MyData
// 查看我的秘钥 我的Key
private static final String appkey = "4ccb4a60ba9f46fb8d460565d1ad418c";
private static final String seckey = "91C75AAA1F89D6E4435EE11F4B9246CD";
public static QichachaFull Company(String reqInterNme,String keyWord) throws Exception {
out.println("开始连接企查查接口平台!!");
String status = "";
// auth header setting
HttpHead 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(keyWord);
String tokenJson ="";
tokenJson = HttpClientUtil.httpGet(reqUri, reqHeader.getAllHeaders());
QichachaFull qichachaFull = new QichachaFull();
status = FormartJson(tokenJson, "Status");
if(!StringUtils.equals(status, "200")) {
return null;
}
StringBuilder sbBuilder = new StringBuilder();
//将从企查查接口获取到的json字符串转换为JSONObject
JSONObject jObject = JSONObject.fromObject(tokenJson);
//获得结果集(多层嵌套有JsonArray ,JsonObject, String)
JSONObject resultJsonObject = (JSONObject) jObject.get("Result");
//存放json数组中的数据
JSONObject arrayObject = null;
//提前准备用于存放JSONObject中的字符串
String arrayObjectStr= "";
out.println( "result:"+resultJsonObject.toString());
//获得结果集中的行政许可信息
JSONArray permissionInfoArry = (JSONArray) resultJsonObject.get("PermissionInfo");
for(int i = 0 ; i<permissionInfoArry.size();i++) {
arrayObject = (JSONObject) permissionInfoArry.get(i);
//项目名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append("项目名称:"+arrayObjectStr);
//地域
arrayObjectStr = parsejson(arrayObject, "Province");
sbBuilder.append(",地域:"+arrayObjectStr);
//决定日期
arrayObjectStr = parsejson(arrayObject, "Liandate");
sbBuilder.append(",决定日期:"+arrayObjectStr);
//决定文书号
arrayObjectStr = parsejson(arrayObject, "CaseNo");
sbBuilder.append(",决定文书号:"+arrayObjectStr+";");
}
out.println("行政许可信息:"+sbBuilder.toString());
qichachaFull.setQccPermissioninfo(sbBuilder.toString());
sbBuilder.setLength(0);//清空sbBuilder到的内容下次使用
//获得结果集中的行政处罚信息
JSONArray penaltyArry = (JSONArray) resultJsonObject.get("Penalty");
if(penaltyArry.size()>0) {
for(int i = 0 ; i<penaltyArry.size();i++) {
arrayObject = (JSONObject) penaltyArry.get(i);
//行政处罚决定书文号
arrayObjectStr = parsejson(arrayObject, "DocNo");
sbBuilder.append("行政处罚决定书文号:"+arrayObjectStr);
//违法行为类型
arrayObjectStr = parsejson(arrayObject, "PenaltyType");
sbBuilder.append(",违法行为类型:"+arrayObjectStr);
//行政处罚决定机关名称
arrayObjectStr = parsejson(arrayObject, "OfficeName");
sbBuilder.append(",行政处罚决定机关名称:"+arrayObjectStr);
//行政处罚内容
arrayObjectStr = parsejson(arrayObject, "Content");
sbBuilder.append(",行政处罚内容:"+arrayObjectStr);
//作出行政处罚决定日期
arrayObjectStr = parsejson(arrayObject, "PenaltyDate");
sbBuilder.append(",行政处罚决定日期:"+arrayObjectStr);
//作出行政公示日期
arrayObjectStr = parsejson(arrayObject, "PublicDate");
sbBuilder.append(",行政公示日期:"+arrayObjectStr);
//备注
String Remark = parsejson(arrayObject, "Remark");
sbBuilder.append(",备注:"+Remark+";");
}
out.println("行政处罚:"+sbBuilder.toString());
qichachaFull.setQccPenalty(sbBuilder.toString());
sbBuilder.setLength(0);//清空
}
//获得结果集中的经营异常信息
JSONArray exceptionsyArry = (JSONArray) resultJsonObject.get("Exceptions");
if(exceptionsyArry.size()>0) {
for (int i = 0; i < exceptionsyArry.size(); i++) {
arrayObject = (JSONObject) penaltyArry.get(i);
//列入经营异常名录原因
arrayObjectStr = parsejson(arrayObject, "AddReason");
sbBuilder.append("列入经营异常名录原因:"+arrayObjectStr);
//列入日期
arrayObjectStr = parsejson(arrayObject, "AddDate");
sbBuilder.append(",列入日期:"+arrayObjectStr);
//移出经营异常名录原因
arrayObjectStr = parsejson(arrayObject, "RomoveReason");
sbBuilder.append(",移出经营异常名录原因:"+arrayObjectStr);
//移出日期
arrayObjectStr = parsejson(arrayObject, "RemoveDate");
sbBuilder.append(",移出日期:"+arrayObjectStr);
//作出决定机关
arrayObjectStr = parsejson(arrayObject, "DecisionOffice");
sbBuilder.append(",决定机关:"+arrayObjectStr);
//移除决定机关
arrayObjectStr = parsejson(arrayObject, "RemoveDecisionOffice");
sbBuilder.append(",移除决定机关:"+arrayObjectStr+";");
}
qichachaFull.setQccExceptions(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的失信信息
JSONArray shiXinItemsArry = (JSONArray) resultJsonObject.get("ShiXinItems");
if(shiXinItemsArry.size()>0) {
for (int i = 0; i < shiXinItemsArry.size(); i++) {
arrayObject = (JSONObject) shiXinItemsArry.get(i);
//公司名
arrayObjectStr = parsejson(arrayObject, "AddDate");
sbBuilder.append("公司名:"+arrayObjectStr);
//立案日期
arrayObjectStr = parsejson(arrayObject, "Liandate");
sbBuilder.append(",立案日期:"+arrayObjectStr);
//立案文书号
arrayObjectStr = parsejson(arrayObject, "Anno");
sbBuilder.append(",立案文书号:"+arrayObjectStr);
//组织机构代码
arrayObjectStr = parsejson(arrayObject, "Orgno");
sbBuilder.append(",组织机构代码:"+arrayObjectStr);
//执行依据文号
arrayObjectStr = parsejson(arrayObject, "Executeno");
sbBuilder.append(",执行依据文号:"+arrayObjectStr);
//发布时间
arrayObjectStr = parsejson(arrayObject, "Publicdate");
sbBuilder.append(",发布时间:"+arrayObjectStr);
//被执行人的履行情况
arrayObjectStr = parsejson(arrayObject, "Executestatus");
sbBuilder.append(",被执行人的履行情况:"+arrayObjectStr);
//行为备注
arrayObjectStr = parsejson(arrayObject, "Actionremark");
sbBuilder.append(",行为备注:"+arrayObjectStr);
//执行法院
arrayObjectStr = parsejson(arrayObject, "Executegov");
sbBuilder.append(",执行法院:"+arrayObjectStr+";");
}
qichachaFull.setQccShixinitems(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的执行信息
JSONArray zhiXingItemsArry = (JSONArray) resultJsonObject.get("ZhiXingItems");
if(zhiXingItemsArry.size()>0) {
for (int i = 0; i < zhiXingItemsArry.size(); i++) {
arrayObject = (JSONObject) zhiXingItemsArry.get(i);
/*//id
str1 = (String) arrayObject.get("Id");
sbBuilder.append("Id:"+str1);
//官网系统ID
str2 = (String) arrayObject.get("Sourceid");
sbBuilder.append("Id:"+str2);*/
//名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append("名称:"+arrayObjectStr);
//立案时间
arrayObjectStr = parsejson(arrayObject, "Liandate");
sbBuilder.append(",立案时间:"+arrayObjectStr);
//立案号
arrayObjectStr = parsejson(arrayObject, "Anno");
sbBuilder.append(",立案号:"+arrayObjectStr);
//执行法院
arrayObjectStr = parsejson(arrayObject, "ExecuteGov");
sbBuilder.append(",执行法院:"+arrayObjectStr);
//标地
arrayObjectStr = parsejson(arrayObject, "Biaodi");
sbBuilder.append(",标地:"+arrayObjectStr);
//状态
arrayObjectStr = parsejson(arrayObject, "Status");
sbBuilder.append(",状态:"+arrayObjectStr);
//身份证号码/组织机构代码
arrayObjectStr = parsejson(arrayObject, "PartyCardNum");
sbBuilder.append(",身份证号码/组织机构代码:"+arrayObjectStr);
//数据更新时间
arrayObjectStr = parsejson(arrayObject, "Updatedate");
sbBuilder.append(",数据更新时间:"+arrayObjectStr+";");
}
qichachaFull.setQccZhixingitems(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的动产抵押信息
JSONArray mPledgeArry = (JSONArray) resultJsonObject.get("MPledge");
if(mPledgeArry.size()>0) {
for (int i = 0; i < mPledgeArry.size(); i++) {
arrayObject = (JSONObject) mPledgeArry.get(i);
//登记编号
arrayObjectStr = parsejson(arrayObject, "RegisterNo");
sbBuilder.append("登记编号:"+arrayObjectStr);
//登记时间
arrayObjectStr = parsejson(arrayObject, "RegisterDate");
sbBuilder.append(",登记时间:"+arrayObjectStr);
//公示时间
arrayObjectStr = parsejson(arrayObject, "PublicDate"); ;
sbBuilder.append(",公示时间:"+arrayObjectStr);
//登记机关
arrayObjectStr = parsejson(arrayObject, "RegisterOffice");
sbBuilder.append(",登记机关:"+arrayObjectStr);
//被担保债权数额
arrayObjectStr = parsejson(arrayObject, "DebtSecuredAmount");
sbBuilder.append(",被担保债权数额:"+arrayObjectStr);
//状态
arrayObjectStr = parsejson(arrayObject, "Status");
sbBuilder.append(",状态:"+arrayObjectStr+";");
}
qichachaFull.setQccMpledge(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的清算信息
if(!resultJsonObject.get("Liquidation").equals(null)) {
arrayObject = (JSONObject) resultJsonObject.get("Liquidation");
//清算组负责人
arrayObjectStr = parsejson(arrayObject, "Leader");
sbBuilder.append("清算组负责人:"+arrayObjectStr);
//清算组成员
arrayObjectStr = parsejson(arrayObject, "Member");
sbBuilder.append(",清算组成员:"+arrayObjectStr+";");
qichachaFull.setQccLiquidation(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的股权出质信息
JSONArray pledgeArry = (JSONArray) resultJsonObject.get("Pledge");
if(pledgeArry.size()>0) {
for (int i = 0; i < pledgeArry.size(); i++) {
arrayObject = (JSONObject) pledgeArry.get(i);
//质权登记编号
arrayObjectStr = parsejson(arrayObject, "RegistNo");
sbBuilder.append("质权登记编号:"+arrayObjectStr);
//出质人
arrayObjectStr = parsejson(arrayObject, "Pledgor");
sbBuilder.append(",出质人:"+arrayObjectStr);
//出质人证照编号
arrayObjectStr = parsejson(arrayObject, "PledgorNo");
sbBuilder.append(",出质人证照编号:"+arrayObjectStr);
//质权人
arrayObjectStr = parsejson(arrayObject, "Pledgee");
sbBuilder.append(",质权人:"+arrayObjectStr);
//质权人证照编号
arrayObjectStr = parsejson(arrayObject, "PledgeeNo");
sbBuilder.append(",质权人证照编号:"+arrayObjectStr);
//出质股权数额
arrayObjectStr = parsejson(arrayObject, "PledgedAmount");
sbBuilder.append(",出质股权数额:"+arrayObjectStr);
//股权出质设立登记日期
arrayObjectStr = parsejson(arrayObject, "RegDate");
sbBuilder.append(",股权出质设立登记日期:"+arrayObjectStr);
//公示时间
arrayObjectStr = parsejson(arrayObject, "PublicDate");
sbBuilder.append(",公示时间:"+arrayObjectStr);
//出质状态
arrayObjectStr = parsejson(arrayObject, "Status");
sbBuilder.append(",出质状态:"+arrayObjectStr+";");
}
qichachaFull.setQccPledge(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的抽查检查信息
JSONArray spotCheckArry = (JSONArray) resultJsonObject.get("SpotCheck");
if(spotCheckArry.size()>0) {
for (int i = 0; i < spotCheckArry.size(); i++) {
arrayObject = (JSONObject) spotCheckArry.get(i);
//登记编号
arrayObjectStr = parsejson(arrayObject, "No");
sbBuilder.append("登记编号:"+arrayObjectStr);
//检查实施机关
arrayObjectStr = parsejson(arrayObject, "ExecutiveOrg");
sbBuilder.append(",检查实施机关:"+arrayObjectStr);
//类型
arrayObjectStr = parsejson(arrayObject, "Type");
sbBuilder.append(",类型:"+arrayObjectStr);
//日期
arrayObjectStr = parsejson(arrayObject, "Date");
sbBuilder.append(",日期:"+arrayObjectStr);
//结果
arrayObjectStr = parsejson(arrayObject, "Consequence");
sbBuilder.append(",结果:"+arrayObjectStr);
//备注
arrayObjectStr = parsejson(arrayObject, "Remark");
sbBuilder.append(",备注:"+arrayObjectStr);
}
qichachaFull.setQccSpotcheck(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的纳税信用等级信息
JSONArray companyTaxCreditItemsArry = (JSONArray) resultJsonObject.get("CompanyTaxCreditItems");
if(companyTaxCreditItemsArry.size()>0) {
for (int i = 0; i < companyTaxCreditItemsArry.size(); i++) {
arrayObject = (JSONObject) companyTaxCreditItemsArry.get(i);
//纳税人识别号
arrayObjectStr = parsejson(arrayObject, "No");
sbBuilder.append("纳税人识别号:"+arrayObjectStr);
//纳税人名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append(",纳税人名称:"+arrayObjectStr);
//评价年度
arrayObjectStr = parsejson(arrayObject, "Year");
sbBuilder.append(",评价年度:"+arrayObjectStr);
//信用等级
arrayObjectStr = parsejson(arrayObject, "Level");
sbBuilder.append(",信用等级:"+arrayObjectStr+";");
}
qichachaFull.setQccCompanytaxcredititems(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的公司产品信息
JSONArray companyProductsArry = (JSONArray) resultJsonObject.get("CompanyProducts");
if(companyProductsArry.size()>0) {
for (int i = 0; i < companyProductsArry.size(); i++) {
arrayObject = (JSONObject) companyProductsArry.get(i);
//产品名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append("产品名称:"+arrayObjectStr);
//产品领域
arrayObjectStr = parsejson(arrayObject, "Domain");
sbBuilder.append(",产品领域:"+arrayObjectStr);
//产品标签
arrayObjectStr = parsejson(arrayObject, "Tags");
sbBuilder.append(",产品标签:"+arrayObjectStr);
//产品描述
arrayObjectStr = parsejson(arrayObject, "Description");
sbBuilder.append(",产品描述:"+arrayObjectStr);
//产品类型
arrayObjectStr = parsejson(arrayObject, "Category");
sbBuilder.append(",产品类型:"+arrayObjectStr);
}
qichachaFull.setQccCompanyproducts(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的行政许可信息
JSONArray permissionEciInfoArry = (JSONArray) resultJsonObject.get("PermissionEciInfo");
if(permissionEciInfoArry.size()>0) {
for (int i = 0; i < permissionEciInfoArry.size(); i++) {
arrayObject = (JSONObject) permissionEciInfoArry.get(i);
//许可文件编号
arrayObjectStr = parsejson(arrayObject, "LicensDocNo");
sbBuilder.append("许可文件编号:"+arrayObjectStr);
//许可文件名称
arrayObjectStr = parsejson(arrayObject, "LicensDocName");
sbBuilder.append(",许可文件名称:"+arrayObjectStr);
//有效期自
arrayObjectStr = parsejson(arrayObject, "ValidityFrom");
sbBuilder.append(",有效期自:"+arrayObjectStr);
//有效期至
arrayObjectStr = parsejson(arrayObject, "ValidityTo");
sbBuilder.append("至:"+arrayObjectStr);
//许可机关
arrayObjectStr = parsejson(arrayObject, "LicensOffice");
sbBuilder.append(",许可机关:"+arrayObjectStr);
//许可内容
arrayObjectStr = parsejson(arrayObject, "LicensContent");
sbBuilder.append(",许可内容:"+arrayObjectStr+";");
}
qichachaFull.setQccPermissioneciinfo(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的行政处罚信息
JSONArray penaltyCreditChinaArry = (JSONArray) resultJsonObject.get("PenaltyCreditChina");
if(penaltyCreditChinaArry.size()>0) {
for (int i = 0; i < penaltyCreditChinaArry.size(); i++) {
arrayObject = (JSONObject) penaltyCreditChinaArry.get(i);
//String决定文书号
arrayObjectStr = parsejson(arrayObject, "CaseNo");
sbBuilder.append("决定文书号:"+arrayObjectStr);
//String处罚名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append(",处罚名称:"+arrayObjectStr);
//String决定日期
arrayObjectStr = parsejson(arrayObject, "Liandate");
sbBuilder.append(",决定日期:"+arrayObjectStr);
//String地域
arrayObjectStr = parsejson(arrayObject, "Province");
sbBuilder.append(",地域:"+arrayObjectStr);
//String所属人
arrayObjectStr = parsejson(arrayObject, "OwnerName");
sbBuilder.append(",所属人:"+arrayObjectStr);
//String处罚事由
arrayObjectStr = parsejson(arrayObject, "CaseReason");
sbBuilder.append(",处罚事由:"+arrayObjectStr+";");
}
qichachaFull.setQccPenaltycreditchina(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的投资人及出资信息
JSONArray partnersArry = (JSONArray) resultJsonObject.get("Partners");
if(partnersArry.size()>0) {
//存放股东标签的数组JSONArray
JSONArray arrayObjectArry = null;
for (int i = 0; i < partnersArry.size(); i++) {
arrayObject = (JSONObject) partnersArry.get(i);
//String投资人
arrayObjectStr = parsejson(arrayObject, "StockName");
sbBuilder.append("投资人:"+arrayObjectStr);
//String投资人类型
arrayObjectStr = parsejson(arrayObject, "StockType");
sbBuilder.append(",投资人类型:"+arrayObjectStr);
//String出资比例
arrayObjectStr = parsejson(arrayObject, "StockPercent");
sbBuilder.append(",出资比例:"+arrayObjectStr);
//String认缴出资额
arrayObjectStr = parsejson(arrayObject, "ShouldCapi");
sbBuilder.append(",认缴出资额:"+arrayObjectStr);
//String认缴出资时间
arrayObjectStr = parsejson(arrayObject, "ShoudDate");
sbBuilder.append(",认缴出资时间:"+arrayObjectStr);
//String认出资方式
arrayObjectStr = parsejson(arrayObject, "InvestType");
sbBuilder.append(",认缴出资方式:"+arrayObjectStr);
//String实出资方式
arrayObjectStr = parsejson(arrayObject, "InvestName");
sbBuilder.append(",实出资方式:"+arrayObjectStr);
//String实缴出资额
arrayObjectStr = parsejson(arrayObject, "RealCapi");
sbBuilder.append(",实缴出资额:"+arrayObjectStr);
//String实缴时间
arrayObjectStr = parsejson(arrayObject, "CapiDate");
sbBuilder.append(",实缴时间:"+arrayObjectStr);
//List<string>股东标签数组TagsList
arrayObjectArry = (JSONArray) arrayObject.get("TagsList");
arrayObjectStr = arrayObjectArry.toString().replaceAll("\"", "");
sbBuilder.append(",股东标签:"+arrayObjectStr.toString());
//String最终受益股份
arrayObjectStr = parsejson(arrayObject, "FinalBenefitPercent");
sbBuilder.append(",最终受益股份:"+arrayObjectStr+";");
}
out.println("投资人及出资信息:"+sbBuilder.toString());
qichachaFull.setQccPartners(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的主要人员信息
JSONArray employeesArry = (JSONArray) resultJsonObject.get("Employees");
if(employeesArry.size()>0) {
for (int i = 0; i < employeesArry.size(); i++) {
arrayObject = (JSONObject) employeesArry.get(i);
// 姓名:"Name"
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append("姓名:"+arrayObjectStr);
//职位:"Job"
arrayObjectStr = parsejson(arrayObject, "Job");
sbBuilder.append(",职位:"+arrayObjectStr+";");
}
qichachaFull.setQccEmployees(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的分支机构信息
JSONArray branchesArry = (JSONArray) resultJsonObject.get("Branches");
if(branchesArry.size()>0) {
for (int i = 0; i < branchesArry.size(); i++) {
arrayObject = (JSONObject) branchesArry.get(i);
//String名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append("名称:"+arrayObjectStr);
//String注册号
arrayObjectStr = parsejson(arrayObject, "RegNo");
sbBuilder.append(",注册号:"+arrayObjectStr);
//String登记机关
arrayObjectStr = parsejson(arrayObject, "BelongOrg");
sbBuilder.append(",登记机关:"+arrayObjectStr);
//String社会统一信用代码( 保留字段)
arrayObjectStr = parsejson(arrayObject, "CreditCode");
sbBuilder.append(",社会统一信用代码:"+arrayObjectStr);
//String法人姓名(保留字段)
arrayObjectStr = parsejson(arrayObject, "OperName");
sbBuilder.append(",法人姓名:"+arrayObjectStr+";");
}
qichachaFull.setQccBranches(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的变更信息信息
JSONArray changeRecordsArry = (JSONArray) resultJsonObject.get("ChangeRecords");
if(changeRecordsArry.size()>0) {
for (int i = 0; i < changeRecordsArry.size(); i++) {
arrayObject = (JSONObject) changeRecordsArry.get(i);
//String变更事项
arrayObjectStr = parsejson(arrayObject, "ProjectName");
sbBuilder.append("变更事项:"+arrayObjectStr);
//String变更前内容
arrayObjectStr = parsejson(arrayObject, "BeforeContent");
sbBuilder.append(",变更前内容:"+arrayObjectStr);
//String变更后内容
arrayObjectStr = parsejson(arrayObject, "AfterContent");
sbBuilder.append(",变更后内容:"+arrayObjectStr);
//String变更日期
arrayObjectStr = parsejson(arrayObject, "ChangeDate");
sbBuilder.append(",变更日期:"+arrayObjectStr+";");
}
qichachaFull.setQccChangerecords(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的联系信息
if(!resultJsonObject.get("ContactInfo").equals(null)) {
//获取 联系信息
arrayObject = (JSONObject) resultJsonObject.get("ContactInfo");
//获取Object网址
JSONArray website = (JSONArray) arrayObject.get("WebSite");
for(int i = 0 ; i < website.size(); i++) {
JSONObject websiteObject = (JSONObject) website.get(i);
//Name String网址名称
arrayObjectStr = parsejson(websiteObject, "Name");
sbBuilder.append("网址名称:"+arrayObjectStr);
//Url String网址地址
arrayObjectStr = parsejson(websiteObject, "Url");
sbBuilder.append(",网址地址:"+arrayObjectStr);
}
//String联系电话
arrayObjectStr = parsejson(arrayObject, "PhoneNumber");
sbBuilder.append(",联系电话:"+arrayObjectStr);
//String邮箱
arrayObjectStr = parsejson(arrayObject, "Email");
sbBuilder.append(",邮箱:"+arrayObjectStr+";");
qichachaFull.setQccContactinfo(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的行业分类信息
if(!resultJsonObject.get("Industry").equals(null)) {
JSONObject industryJOb = (JSONObject) resultJsonObject.get("Industry");
//获取industryJOb中的 Industry String行业门类描述
arrayObjectStr = parsejson(industryJOb, "Industry");
sbBuilder.append("行业门类:"+arrayObjectStr);
qichachaFull.setQccIndustry(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的区域信息
if(!resultJsonObject.get("Area").equals(null)) {
JSONObject areaJOb = (JSONObject) resultJsonObject.get("Area");
//String省份
arrayObjectStr = parsejson(areaJOb, "Province");
sbBuilder.append(arrayObjectStr);
//String城市
arrayObjectStr = parsejson(areaJOb, "City");
sbBuilder.append(arrayObjectStr);
//String区域
arrayObjectStr = parsejson(areaJOb, "County");
sbBuilder.append(arrayObjectStr);
qichachaFull.setQccArea(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的参保人数信息
if(!resultJsonObject.get("InsuredCount").equals(null)) {
String insuredCountStr = (String) resultJsonObject.get("InsuredCount");
qichachaFull.setQccInsuredcount(insuredCountStr);
}
//获得结果集中的英文名信息
if(!resultJsonObject.get("EnglishName").equals(null)) {
String englishNameStr = (String) resultJsonObject.get("EnglishName");
qichachaFull.setQccEnglishname(englishNameStr);
}
//获得结果集中的人员规模信息
if(!resultJsonObject.get("PersonScope").equals(null)) {
String personScopeStr = (String) resultJsonObject.get("PersonScope");
qichachaFull.setQccPersonscope(personScopeStr);
}
//获得结果集中的标签列表信息
JSONArray tagListArry = (JSONArray) resultJsonObject.get("TagList");
if(tagListArry.size()>0) {
for (int i = 0; i < tagListArry.size(); i++) {
arrayObject = (JSONObject) tagListArry.get(i);
//类型
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append(arrayObjectStr+",");
}
qichachaFull.setQccTaglist(sbBuilder.toString());
sbBuilder.setLength(0);
}
//获得结果集中的最新企业年报中的联系方式信息
JSONArray aRContactListArry = (JSONArray) resultJsonObject.get("ARContactList");
if(aRContactListArry.size()>0) {
for (int i = 0; i < aRContactListArry.size(); i++) {
arrayObject = (JSONObject) aRContactListArry.get(i);
//String企业联系电话
arrayObjectStr = parsejson(arrayObject, "ContactNo");
sbBuilder.append("企业联系电话:"+arrayObjectStr);
//String电子邮箱
arrayObjectStr = parsejson(arrayObject, "EmailAddress");
sbBuilder.append(",电子邮箱:"+arrayObjectStr);
//String企业通讯地址
arrayObjectStr = parsejson(arrayObject, "Address");
sbBuilder.append(",企业通讯地址:"+arrayObjectStr+";");
}
qichachaFull.setQccArcontactlist(sbBuilder.toString());
sbBuilder.setLength(0);
}
String keyNoStr = parsejson(resultJsonObject, "KeyNo");
qichachaFull.setQccKeyno(keyNoStr);
String nameStr = parsejson(resultJsonObject, "Name");
qichachaFull.setQccName(nameStr);
String noStr = parsejson(resultJsonObject, "No");
qichachaFull.setQccNo(noStr);
String belongOrgStr = parsejson(resultJsonObject, "BelongOrg");
qichachaFull.setQccBelongorg(belongOrgStr);
String operNameStr = parsejson(resultJsonObject, "OperName");
qichachaFull.setQccOpername(operNameStr);
String startDateStr = parsejson(resultJsonObject, "StartDate") ;
qichachaFull.setQccStartdate(startDateStr);
String endDateStr = parsejson(resultJsonObject, "EndDate") ;
qichachaFull.setQccEnddate(endDateStr);
String statusStr = parsejson(resultJsonObject, "Status") ;
qichachaFull.setQccStatus(statusStr);
String provinceStr = parsejson(resultJsonObject, "Province") ;
qichachaFull.setQccProvince(provinceStr);
String updatedDateStr = parsejson(resultJsonObject, "UpdatedDate") ;
qichachaFull.setQccUpdateddate(updatedDateStr);
String creditCodeStr = parsejson(resultJsonObject, "CreditCode");
qichachaFull.setQccCreditcode(creditCodeStr);
String registCapiStr = parsejson(resultJsonObject, "RegistCapi");
qichachaFull.setQccRegistcapi(registCapiStr);
String econKindStr = parsejson(resultJsonObject, "EconKind");
qichachaFull.setQccEconkind(econKindStr);
String addressStr = parsejson(resultJsonObject, "Address");
qichachaFull.setQccAddress(addressStr);
String scopeStr = parsejson(resultJsonObject, "Scope");
qichachaFull.setQccScope(scopeStr);
String termStartStr = parsejson(resultJsonObject, "TermStart");
qichachaFull.setQccTeamstart(termStartStr);
String checkDateStr = parsejson(resultJsonObject, "CheckDate");
qichachaFull.setQccCheckdate(checkDateStr);
String orgNoStr = parsejson(resultJsonObject, "OrgNo") ;
qichachaFull.setQccOrgno(orgNoStr);
String isOnStockStr = parsejson(resultJsonObject, "IsOnStock");
qichachaFull.setQccIsonstock(isOnStockStr);
String stockNumberStr = parsejson(resultJsonObject, "StockNumber");
qichachaFull.setQccStocknumber(stockNumberStr);
String stockTypeStr = parsejson(resultJsonObject, "StockType");
qichachaFull.setQccStocktype(stockTypeStr);
JSONArray originalNameArry = (JSONArray) resultJsonObject.get("OriginalName");
if(originalNameArry.size()>0) {
for (int i = 0; i < originalNameArry.size(); i++) {
arrayObject = (JSONObject) originalNameArry.get(i);
//String名称
arrayObjectStr = parsejson(arrayObject, "Name");
sbBuilder.append("名称:"+arrayObjectStr);
//String变更日期
arrayObjectStr = parsejson(arrayObject, "ChangeDate");
sbBuilder.append(",变更日期:"+arrayObjectStr+";");
}
qichachaFull.setQccOriginalname(sbBuilder.toString());
sbBuilder.setLength(0);
}
String imageUrlStr = parsejson(resultJsonObject, "ImageUrl");
qichachaFull.setQccImageurl(imageUrlStr);
String entTypeStr = parsejson(resultJsonObject, "EntType");
qichachaFull.setQccEnttype(entTypeStr);
String recCapStr = parsejson(resultJsonObject, "RecCap");
qichachaFull.setQccReccap(recCapStr);
out.println( "qichachaFull:"+qichachaFull.toString());
out.println(String.format("==========================>Status:{%s}", status));
return qichachaFull;
}
/**
* 解析JSONObject数据中可能存在的null 返回空字符串
* @param jsonObject
* @param key 键
* @return String类型字符串
*/
static String parsejson(JSONObject jsonObject,String key) {
if(jsonObject.get(key).equals(null)) {
return "";
}else {
return (String) jsonObject.get(key);
}
}
// 获取返回码 Res Code
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 Code
protected 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;
}
// 解析JSON
protected static String FormartJson(String jsonString, String key) throws JSONException {
JSONObject jObject = JSONObject.fromObject(jsonString);
return (String) jObject.get(key);
}
// pretty print 返回值
protected 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();
}
}
}
HttpClientUtil 类中的代码
package net.atrunning.framework.qichacha;
import static java.lang.System.out;
import java.io.IOException;
import java.net.URI;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
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.client.utils.URIBuilder;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
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.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/**
* 连接企查查平台接口
* @author Administrator
*
*/
public class HttpClientUtil {
// 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 httpClient
*/
private static CloseableHttpClient sslClient() {
try {
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] xcs, String str) {
}
public 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 config
private static final String REQ_ENCODEING_UTF8 = "utf-8";
private static PoolingHttpClientConnectionManager httpClientConnectionManager;
public HttpClientUtil() {
httpClientConnectionManager = new PoolingHttpClientConnectionManager();
httpClientConnectionManager.setMaxTotal(100);
httpClientConnectionManager.setDefaultMaxPerRoute(20);
}
// get 请求
public static String httpGet(String url) throws Exception {
return httpGet(url, null);
}
}