更多资料请参考:www.woyaocha.net/product/area

接口描述

功能描述

根据行政区划代码获取行政区划名称,或者根据行政区划名称获取行政区划代码。

URL 示例

1)http 协议:

POST 方式请求:

Copy

http://cha.ebaitian.cn/api/json?appid=xxx&module=getAreaInfo&area=xxx&sign=xxx

GET 方式请求:

Copy

http://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getAreaInfo&area=xxx&sign=xxx

2)https 协议:

POST 方式请求:

Copy

https://cha.ebaitian.cn/api/json?appid=xxx&module=getAreaInfo&area=xxx&sign=xxx

GET 方式请求:

Copy

https://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getAreaInfo&area=xxx&sign=xxx

请求参数

数据包体

Copy

{"type": "get","appid": "1000xxxx","module": "getAreaInfo","area": "东西湖","sign": "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4"
}

参数说明

参数 必选 类型 描述
type string 授权接口的请求方式
appid string 授权接口的 AppID,请填写您在我要查官网上申请到的 AppID
module string 目标请求的数据模块,查询行政区划代码为:getAreaInfo
area string 目标要查询的行政区划代码或名称,也可以是对应的行政区划代码(6位),如:110000
sign string 请求凭证,具体计算方式见下面的其他说明

其他说明

1)type:可选值 get,如果赋值 get,则以 get 方式提交数据;默认以 post 方式提交数据;
2)sign:签名校验,根据公式 $sign=sha256(appid=$appid&module=getAreaInfo&area=$area&appkey=$appkey) 生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。

构造伪代码如下:

Copy

string type = "get"; //请求方式,可以赋值为:post
string appid = "1000xxxx"; //sdkappid 对应的 appid,需要业务方高度保密
string module = "getAreaInfo"; //请求的数据模块,此处赋值:getMobileArea
string area = "东西湖"; //要查询的行政区划代码或名称,也可以是对应的行政区划代码(6位),如:420112
string sign = sha256(appid=1000xxxx&module=getAreaInfo&area=北京&appkey=56cf61af4b7897e704f67deb88ae8f24);

响应参数

数据包体

Copy

{"result":1,"description":"TRUE","flag":"","areaInfo":{"areacode":"420112","areaname":"东西湖区","province":"湖北省","city":"武汉市","note":null}
}

参数说明

参数 必选 类型 描述
result string 接口响应结果:0-失败;1-成功
description string 接口响应描述:一般为 TURE(result=1) 与 FALSE(result=0),或者返回错误信息
flag string 错误说明,没有错误则返回空
areaInfo object 返回行政区划代码信息

areaInfo 参数说明:

参数 必选 类型 描述
areacode string 行政区划代码
areaname string 行政区划名称
province string 所属地区对应的省(市/自治区)
city string 所属地区对应的市(区/自治州)
note string 其他备注信息,一般为空

SDK 及代码示例

PHP SDK

方法一:以 POST 方式请求数据

Copy

//接口参数
$api_url='http://cha.ebaitian.cn/api/json';
$api_appid='1000xxxx';
$api_appkey='56cf61af4b7897e704f67deb88ae8f24';//函数,以POST方式提交数据,PHP需要开启CURL函数;数据传输安全,建议使用
function getAreaInfo($area){global $api_url,$api_appid,$api_appkey;$posturl=$api_url;$data='appid='.$api_appid.'&module=getAreaInfo&area='.$area;$sign=hash("sha256",$data.'&appkey='.$api_appkey);$postdata=array("appid"=>$api_appid,"appkey"=>$api_appkey,"module"=>"getAreaInfo","area"=>$area,'sign'=>$sign);$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $posturl);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);$output = curl_exec($curl);curl_close($curl);$obj=json_decode($output);$result=$obj->result;if($result==1){$value=$obj->areaInfo->areacode;$value.=','.$obj->areaInfo->areaname;$value.=','.$obj->areaInfo->province;$value.=','.$obj->areaInfo->city;}else{$value=$obj->flag;}return $value;
}
//调用函数
$area='东西湖';
echo getAreaInfo($area);
exit;

方法二:以 GET 方式请求数据

Copy

//接口参数
$api_url='http://cha.ebaitian.cn/api/json';
$api_appid='1000xxxx';
$api_appkey='56cf61af4b7897e704f67deb88ae8f24';//函数,以GET方式提交数据
function getAreaInfo($area){global $api_url,$api_appid,$api_appkey;$data='appid='.$api_appid.'&module=getAreaInfo&area='.$area;$sign=hash("sha256",$data.'&appkey='.$api_appkey);$info_get=file_get_contents($api_url.'?type=get&'.$data.'&sign='.$sign);$info_json=json_decode($info_get, true);$result=$info_json['result'];if($result==1){$value=$info_json['areaInfo']['areacode'];$value.=','.$info_json['areaInfo']['areaname'];$value.=','.$info_json['areaInfo']['province'];$value.=','.$info_json['areaInfo']['city'];}else{$value=$info_json['flag'];}return $value;
}
//调用函数
$area='东西湖';
echo getAreaInfo($area);
exit;

Java SDK

Copy

//以下示例是以 GET 方式请求数据
public class QueryHelper {public static String apiurl="http://cha.ebaitian.cn/api/json";public static String appid="1000xxxx";public static String appkey="56cf61af4b7897e704f67deb88ae8f24";public static String module="getAreaInfo";public static String getSHA256Str(String str){MessageDigest messageDigest;String encdeStr = "";try {messageDigest = MessageDigest.getInstance("SHA-256");byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));encdeStr = Hex.encodeHexString(hash);} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}return encdeStr;}public static String get(String urlString) {try {URL url = new URL(urlString);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5 * 1000);conn.setReadTimeout(5 * 1000);conn.setDoInput(true);conn.setDoOutput(true);conn.setUseCaches(false);conn.setInstanceFollowRedirects(false);conn.setRequestMethod("GET"); int responseCode = conn.getResponseCode();if (responseCode == 200) {StringBuilder builder = new StringBuilder();BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));for (String s = br.readLine(); s != null; s = br.readLine()) {builder.append(s);}br.close();return builder.toString();}} catch (IOException e) {e.printStackTrace();}return null;}public static String queryArea(String area){String sign=getSHA256Str("appid="+appid+"&module="+module+"&area="+area+"&appkey="+appkey);String url=apiurl+"?type=get&appid="+appid+"&module="+module+"&area="+area+"&sign="+sign;return get(url);}
}//使用示例
QueryHelper.queryArea("东西湖");

Python SDK

Copy

#!/usr/bin/python
# -*- coding: utf-8 -*-
import httplib2
import hashlib
from urllib.parse import urlencode #python3
#from urllib import urlencode #python2apiurl='http://cha.ebaitian.cn/api/json'
appid='1000xxxx'
appkey='56cf61af4b7897e704f67deb88ae8f24'
module='getAreaInfo'
area='东西湖'
data='appid='+appid+'&module='+module+'&area='+area
sign_data=data+'&appkey='+appkey# from Crypto.Cipher import AES
# from Crypto.Hash import SHA256
# 256
hash_256 = hashlib.sha256()
hash_256.update(sign_data.encode('utf-8'))
sign = hash_256.hexdigest()postdata = urlencode({'appid':appid,'module':module,'area':area,'sign':sign})
url = apiurl+'?'+postdata
http = httplib2.Http()
response, content = http.request(url,'GET')
print(content.decode("utf-8"))

Node.js SDK

方法一:以 POST 方式请求数据

Copy

//以 POST 方式提交
var http = require('http');  var querystring = require('querystring');  //参数设置
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getAreaInfo';//目标查询行政区划代码或名称
var area='东西湖';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&area='+area+'&appkey='+appkey);//这是需要提交的数据
var post_data = {appid: appid,  module: module,area: area,sign: sign
};  var content = querystring.stringify(post_data);  var options = {  hostname: 'cha.ebaitian.cn',  port: 80,  path: '/api/json',  method: 'POST',  headers: {  'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  }
};  var req = http.request(options, function (res) {  console.log('STATUS: ' + res.statusCode);  console.log('HEADERS: ' + JSON.stringify(res.headers));  res.setEncoding('utf8');  res.on('data', function (chunk) {  console.log('BODY: ' + chunk);  //JSON.parse(chunk)});
});  req.on('error', function (e) {  console.log('problem with request: ' + e.message);
});  // write data to request body
req.write(content);  req.end();

方法二:以 GET 方式请求数据

Copy

//以 GET 方式提交
var http = require('http');  var querystring = require('querystring');  //参数设置
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getAreaInfo';//目标查询行政区划代码或名称
var area='东西湖';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&area='+area+'&appkey='+appkey);//这是需要提交的数据
var data = {appid: appid, module: module,area: area,sign: sign
};var content = querystring.stringify(data);  var options = {  hostname: 'cha.ebaitian.cn',  port: 80,  path: '/api/json?' + content,  method: 'GET'
};  var req = http.request(options, function (res) {  console.log('STATUS: ' + res.statusCode);  console.log('HEADERS: ' + JSON.stringify(res.headers));  res.setEncoding('utf8');  res.on('data', function (chunk) {  console.log('BODY: ' + chunk);});
});  req.on('error', function (e) {  console.log('problem with request: ' + e.message);
});  req.end();

C# SDK

Copy

using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.Text;public class getAreaInfo{public static string getInfo(string appid, string appkey, string module, string area){string url = string.Format("http://cha.ebaitian.cn/api/json?type=get&appid={0}&module={1}&area={2}&sgin={3}", appid, module, area, sgin);using (WebClient client = new WebClient()){client.Encoding = Encoding.UTF8;return client.DownloadString(url);}}
}string areaInfo = getAreaInfo.getInfo("1000xxxx", "getAreaInfo", "东西湖", "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4", Request.UserHostAddress);
Console.WriteLine(areaInfo);
Response.Write(areaInfo);

JavaScript SDK

方法一:以 POST 方式请求数据

Copy

//使用 JQuery 请先加载最新的 JQuery 插件
//参数设置
var apiurl = 'http://cha.ebaitian.cn/api/json';
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getAreaInfo';//目标查询行政区划代码或名称
var area='东西湖';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&area='+area+'&appkey='+appkey);//提交数据
$.ajax({url:apiurl,type:'post',dataType:'json',data:{appid:appid,module:module,area:area,sign:sign},success:function(res){console.log(res);}
});

方法二:以 GET 方式请求数据

Copy

//使用 JQuery 请先加载最新的 JQuery 插件
//参数设置
var apiurl = 'http://cha.ebaitian.cn/api/json';
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getAreaInfo';//目标查询行政区划代码或名称
var area='东西湖';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&area='+area+'&appkey='+appkey);//提交数据
$.ajax({url:apiurl,type:'post',dataType:'json',data:{appid:appid,module:module,area:area,sign:sign},success:function(res){console.log(res);}
});

ASP SDK

Copy

'设置参数
dim apiurl, appid, appkey, module, area, sign
apiurl="http://cha.ebaitian.cn/api/json"
appid="1000xxxx'
appkey="56cf61af4b7897e704f67deb88ae8f24"
module="getAreaInfo"
area="东西湖"'签名,SHA256 不可直接调用;函数参考地址:https://blog.csdn.net/yesoce/article/details/128546
sgin=SHA256("appid=&appid&"&module="&module&"&area="&area&"&appkey="&appkey)'异步提交数据
function PostHTTPPage(url,data)dim Http set Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")Http.open "POST",url,falseHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"Http.send(data) if Http.readystate<>4 then exit function End ifPostHTTPPage=bytesToBSTR(Http.responseBody,"UTF-8")set http=nothing if err.number<>0 then err.Clear
End function'提交数据
dim postdata, strTest
postdata="appid=&appid&"&module="&module&"&area="&area&"&sign="&sign
strTest=PostHTTPPage(apiurl,postdata)'返回结果
response.write(strTest)
response.end

常见问题

API 接口参数为空

此错误返回 JSON 数据如下:

Copy

{"result":0,"description":"API接口参数为空","flag":"appid:sign"
}

解决方法:
1)请检查 appid 及 sign 是否为空;
2)确保 appid 是从官网获取到正确的接口授权;
3)确保 sign 计算生成是正确的。

API 接口参数无效

此错误返回 JSON 数据如下:

Copy

{"result":0,"description":"API接口参数无效","flag":"appid"
}

解决方法:
1)请检查 appid 是否正确;
2)确保 appid 是从官网获取到正确的接口授权。

API 接口授权已到期

此错误返回 JSON 数据如下:

Copy

{"result":0,"description":"API接口授权已到期","flag":"end:2018-12-31 23:59:59"
}

解决方法:
1)请检查 appid 对应接口授权的期限是否过期;
2)如果接口授权过期,请到官网更新(免费用户直接更新,无需续费)或续费(针对商业付费用户)。

签名错误

此错误返回 JSON 数据如下:

Copy

{"result":0,"description":"签名错误","flag":"getAreaInfo->sign"
}

解决方法:
1)请检查 sign 签名计算是否正确;
2)签名 sign 根据公式 $sign=sha256(appid=$appid&module=getAreaInfo&area=$area&appkey=$appkey) 生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。

请求受限

此错误返回 JSON 数据如下:

Copy

{"result":0,"description":"请求受限","flag":"getAreaInfo->daylimit"
}

解决方法:
1)授权接口已超出当前接口产品请求的最大限制;
2)请根据实际使用需求升级您的接口产品。

行政区划代码查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口相关推荐

  1. 2019-nCoV肺炎疫情同程查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口

    更多资料请参考:www.woyaocha.net/product/trip2019ncov 手机查询链接(已开发好的):www.woyaocha.net/trip2019ncov 接口使用 我要查询 ...

  2. 快递查询(快递单号智能识别/快递公司+快递单号)-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口

    更多资料请参考:www.woyaocha.net/product/express 查询说明 接口一:快递单号智能识别 快递单号智能识别,是根据查询的快递单号自动智能识别出该运单所属的快递公司,再获取快 ...

  3. POS 商户编号查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口

    更多资料请参考:www.woyaocha.net/product/posmcc 接口描述 功能描述 通过商户编号获取中国大陆地区所有线下收单机构的商户信息,如:收单机构.MCC编码类别.适用费率及商户 ...

  4. 院校代码/高等学校查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口

    更多资料请参考:www.woyaocha.net/product/school 接口描述 功能描述 通过院校名称获取院校对应的院校代码/高等学校,或者通过院校代码/高等学校获取对应的院校名称:后期将会 ...

  5. 手机号码查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口

    更多资料请参考:www.woyaocha.net/product/mobile 接口描述 功能描述 获取手机号码段的省市区以及运营商名称,通俗的说就是获取手机号码的归属地及电信运营商名称. URL 示 ...

  6. db2分页查询语句优化_面试官:数据量很大,分页查询很慢,怎么优化?

    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...

  7. AJAX使用淘宝API查询手机归属地和运营商信息

    AJAX使用淘宝API查询手机归属地和运营商信息 使用给的api地址查询自己的手机号码所在地 地址: https://www.baifubao.com/callback?cmd=1059&ph ...

  8. 一封传话聚合推送各语言demo代码示例

    一封传话聚合推送各语言demo代码示例 前言 查看一封传话的API文档的GET请求只需一行代码,在url上拼接head和body参数即可完成推送.这里针对body数据量较大的情况,给出各语言实现的de ...

  9. 微信小程序官方示例 Demo 代码

    以前只知道小程序有一个UI组件库, 不知道小程序还有一个官方示例Demo,今天用了一下大大的提高了我的编程速度,界面截图如下: 具体的你们自己打开吧,我给你们整好了拦截,微信小程序官方示例Demo代码 ...

最新文章

  1. linux中O(1)调度算法与全然公平(CFS)调度算法
  2. LintCode Longest Increasing Continuous Subsequence
  3. 算法笔记_120:蓝桥杯第六届省赛(Java语言B组部分习题)试题解答
  4. 开源矿工和轻松矿工接入ssl
  5. java utf8 byte_byte以及UTF-8的转码规则
  6. centos下mysql多实例安装3306、3307实例(2014-10-15)
  7. 不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环
  8. 一个简单的基于 DirectShow 的播放器 1(封装类)
  9. C++ STL 堆(heap)的初始化及其正确使用
  10. iphone备忘录自带的扫描功能扫完文件后如何保存为图片
  11. DevOps:软件架构师行动指南DevOps:软件架构师行动指南2.3 独特的云特性对DevOps的影响...
  12. PythonServer
  13. nagios监控3306端口
  14. Jenkins安装教程
  15. 前端缓存方法实现—cookie/sessionStorage/localStorage
  16. 在eclipse部署OpenBravo项目
  17. 米家扫地机器人尘盒怎么取_米家扫地机器人怎么打开尘盒
  18. 【SpringCloud-学习笔记】Docker基本操作
  19. php花店销售系统代码_花店淡季来袭,新的业绩增长点到底在哪?
  20. Android基础与手机历史

热门文章

  1. QQ群成员提取器, 也可以关键字搜索群
  2. 用PyCharm实现罗盘时钟(代码)
  3. 从一个真实案例说起:我所亲历的传统行业数字化转型
  4. ANSYS动力分析—谐响应分析(转载)…
  5. oTree学习教程(三)Pages
  6. java:swagger-codegen生成CSharp(C#) Client
  7. 新建vivado工程仿真或修改原仿真代码后,仿真波形不更新问题(已解决)
  8. 长城宽带网线--有线路由器--无线路由器(手机wifi上网)
  9. Win10任务栏卡死的几个处理方法 附小工具
  10. 分支定价求解GAP问题