院校代码/高等学校查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/school
接口描述
功能描述
通过院校名称获取院校对应的院校代码/高等学校,或者通过院校代码/高等学校获取对应的院校名称;后期将会提供院校更多的信息,比如:院校代码/高等学校/院校名称/国家标识码/主管部门/所在地区/办学层次/办学性质/办学类型等信息,敬请关注。
URL 示例
1)
http协议:
POST 方式请求:
Copy
[code]http://cha.ebaitian.cn/api/json?appid=xxx&module=getUniversityInfo&school=xxx&sign=xxx
GET 方式请求:
Copy
[code]http://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getUniversityInfo&school=xxx&sign=xxx
2)
https协议:
POST 方式请求:
Copy
[code]https://cha.ebaitian.cn/api/json?appid=xxx&module=getUniversityInfo&school=xxx&sign=xxx
GET 方式请求:
Copy
[code]https://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getUniversityInfo&school=xxx&sign=xxx
请求参数
数据包体
Copy
[code]{ "type": "get", "appid": "1000xxxx", "module": "getUniversityInfo", "school": "武汉大学", "sign": "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4" }
参数说明
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
type | 否 | string | 授权接口的请求方式 |
appid | 是 | string | 授权接口的 AppID,请填写您在我要查官网上申请到的 AppID |
module | 是 | string | 目标请求的数据模块,查询院校代码/高等学校为:getUniversityInfo |
school | 是 | string | 目标要查询的院校代码/高等学校或院校名称,支持中国大陆地区的大部分高等学校 |
sign | 是 | string | 请求凭证,具体计算方式见下面的其他说明 |
其他说明
1)type:可选值 get,如果赋值 get,则以 get 方式提交数据;默认以 post 方式提交数据;
2)sign:签名校验,根据公式
$sign=sha256(appid=$appid&module=getUniversityInfo&school=$school&appkey=$appkey)生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。
构造伪代码如下:
Copy
[code]string type = "get"; //请求方式,可以赋值为:post string appid = "1000xxxx"; //sdkappid 对应的 appid,需要业务方高度保密 string module = "getUniversityInfo"; //请求的数据模块,此处赋值:getUniversityInfo string school = "武汉大学"; //要查询的院校代码/高等学校或院校名称 string sign = sha256(appid=1000xxxx&module=getUniversityInfo&school=武汉大学&appkey=56cf61af4b7897e704f67deb88ae8f24);
响应参数
数据包体
Copy
[code]{ "result":1, "description":"TRUE", "flag":"", "universityInfo":{ "ucode"=>"10486", "uname"=>"武汉大学", "ucodeno"=>"4142010486", "uadm"=>"教育部", "city"=>"武汉市", "area"=>"湖北省武汉市", "levels"=>"本科", "nature"=>"公办", "genre"=>"普通高等学校" } }
参数说明
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | string | 接口响应结果:0-失败;1-成功 |
description | 是 | string | 接口响应描述:一般为 TURE(result=1) 与 FALSE(result=0),或者返回错误信息 |
flag | 否 | string | 错误说明,没有错误则返回空 |
universityInfo | 是 | object | 返回院校信息 |
universityInfo 参数说明:
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
ucode | 是 | string | 院校代码/高等学校 |
uname | 是 | string | 院校名称 |
ucodeno | 是 | string | 院校国家标识码 |
uadm | 是 | string | 院校主管部门 |
city | 是/否 | string | 院校所在城市,genre 为“成人高等学校”时返回为空 |
area | 是 | string | 院校所在地区 |
levels | 是/否 | string | 院校办学层次,genre 为“成人高等学校”时返回为空 |
nature | 是 | string | 院校办学性质,公办、民办或其他 |
genre | 是 | string | 院校办学类型,普通高等学校或成人高等学校 |
SDK 及代码示例
PHP SDK
方法一:以 POST 方式请求数据
Copy
[code]//接口参数 $api_url='http://cha.ebaitian.cn/api/json'; $api_appid='1000xxxx'; $api_appkey='56cf61af4b7897e704f67deb88ae8f24'; //函数,以POST方式提交数据,PHP需要开启CURL函数;数据传输安全,建议使用 function getUniversityInfo($school){ global $api_url,$api_appid,$api_appkey; $posturl=$api_url; $data='appid='.$api_appid.'&module=getUniversityInfo&school='.$school; $sign=hash("sha256",$data.'&appkey='.$api_appkey); $postdata=array("appid"=>$api_appid,"appkey"=>$api_appkey,"module"=>"getUniversityInfo","school"=>$school,'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->universityInfo->ucode; $value.=','.$obj->universityInfo->uname; $value.=','.$obj->universityInfo->area; }else{ $value=$obj->flag; } return $value; } //调用函数 $school='武汉大学'; echo getUniversityInfo($school); exit;
方法二:以 GET 方式请求数据
Copy
[code]//接口参数 $api_url='http://cha.ebaitian.cn/api/json'; $api_appid='1000xxxx'; $api_appkey='56cf61af4b7897e704f67deb88ae8f24'; //函数,以GET方式提交数据 function getUniversityInfo($school){ global $api_url,$api_appid,$api_appkey; $data='appid='.$api_appid.'&module=getUniversityInfo&school='.$school; $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['universityInfo']['ucode']; $value.=','.$info_json['universityInfo']['uname']; $value.=','.$info_json['universityInfo']['area']; }else{ $value=$info_json['flag']; } return $value; } //调用函数 $school='武汉大学'; echo getUniversityInfo($school); exit;
Java SDK
Copy
[code]//以下示例是以 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="getUniversityInfo"; 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 querySchool(String school){ String sign=getSHA256Str("appid="+appid+"&module="+module+"&school="+school+"&appkey="+appkey); String url=apiurl+"?type=get&appid="+appid+"&module="+module+"&school="+school+"&sign="+sign; return get(url); } } //使用示例 QueryHelper.querySchool("武汉大学");
Python SDK
Copy
[code]#!/usr/bin/python # -*- coding: utf-8 -*- import httplib2 import hashlib from urllib.parse import urlencode #python3 #from urllib import urlencode #python2 apiurl='http://cha.ebaitian.cn/api/json' appid='1000xxxx' appkey='56cf61af4b7897e704f67deb88ae8f24' module='getUniversityInfo' school='武汉大学' data='appid='+appid+'&module='+module+'&school='+school 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,'school':school,'sign':sign}) url = apiurl+'?'+postdata http = httplib2.Http() response, content = http.request(url,'GET') print(content.decode("utf-8"))
Node.js SDK
方法一:以 POST 方式请求数据
Copy
[code]//以 POST 方式提交 var http = require('http'); var querystring = require('querystring'); //参数设置 var appid = '1000xxxx'; var appkey = '56cf61af4b7897e704f67deb88ae8f24'; var module = 'getUniversityInfo'; //目标查询院校代码/高等学校或院校名称 var school='武汉大学'; //签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256 var sign = SHA256('appid='+appid+'&module='+module+'&school='+school+'&appkey='+appkey); //这是需要提交的数据 var post_data = { appid: appid, module: module, school: school, 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
[code]//以 GET 方式提交 var http = require('http'); var querystring = require('querystring'); //参数设置 var appid = '1000xxxx'; var appkey = '56cf61af4b7897e704f67deb88ae8f24'; var module = 'getUniversityInfo'; //目标查询院校代码/高等学校或院校名称 var school='武汉大学'; //签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256 var sign = SHA256('appid='+appid+'&module='+module+'&school='+school+'&appkey='+appkey); //这是需要提交的数据 var data = { appid: appid, module: module, school: school, 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
[code]using System; using System.Collections.Generic; using System.Web; using System.Net; using System.Text; public class getuniversityInfo{ public static string getInfo(string appid, string appkey, string module, string school){ string url = string.Format("http://cha.ebaitian.cn/api/json?type=get&appid={0}&module={1}&school={2}&sgin={3}", appid, module, school, sgin); using (WebClient client = new WebClient()){ client.Encoding = Encoding.UTF8; return client.DownloadString(url); } } } string universityInfo = getuniversityInfo.getInfo("1000xxxx", "getUniversityInfo", "武汉大学", "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4", Request.UserHostAddress); Console.WriteLine(universityInfo); Response.Write(universityInfo);
JavaScript SDK
方法一:以 POST 方式请求数据
Copy
[code]//使用 JQuery 请先加载最新的 JQuery 插件 //参数设置 var apiurl = 'http://cha.ebaitian.cn/api/json'; var appid = '1000xxxx'; var appkey = '56cf61af4b7897e704f67deb88ae8f24'; var module = 'getUniversityInfo'; //目标查询院校代码/高等学校或院校名称 var school='武汉大学'; //签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256 var sign = SHA256('appid='+appid+'&module='+module+'&school='+school+'&appkey='+appkey); //提交数据 $.ajax({ url:apiurl, type:'post', dataType:'json', data:{ appid:appid, module:module, school:school, sign:sign }, success:function(res){ console.log(res); } });
方法二:以 GET 方式请求数据
Copy
[code]//使用 JQuery 请先加载最新的 JQuery 插件 //参数设置 var apiurl = 'http://cha.ebaitian.cn/api/json'; var appid = '1000xxxx'; var appkey = '56cf61af4b7897e704f67deb88ae8f24'; var module = 'getUniversityInfo'; //目标查询院校代码/高等学校或院校名称 var school='武汉大学'; //签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256 var sign = SHA256('appid='+appid+'&module='+module+'&school='+school+'&appkey='+appkey); //提交数据 $.ajax({ url:apiurl, type:'post', dataType:'json', data:{ appid:appid, module:module, school:school, sign:sign }, success:function(res){ console.log(res); } });
ASP SDK
Copy
[code]'设置参数 dim apiurl, appid, appkey, module, school, sign apiurl="http://cha.ebaitian.cn/api/json" appid="1000xxxx' appkey="56cf61af4b7897e704f67deb88ae8f24" module="getUniversityInfo" school="武汉大学" '签名,SHA256 不可直接调用;函数参考地址:https://blog.csdn.net/yesoce/article/details/128546 sgin=SHA256("appid=&appid&"&module="&module&"&school="&school&"&appkey="&appkey) '异步提交数据 function PostHTTPPage(url,data) dim Http set Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0") Http.open "POST",url,false Http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" Http.send(data) if Http.readystate<>4 then exit function End if PostHTTPPage=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&"&school="&school&"&sign="&sign strTest=PostHTTPPage(apiurl,postdata) '返回结果 response.write(strTest) response.end
常见问题
API 接口参数为空
此错误返回 JSON 数据如下:
Copy
[code]{ "result":0, "description":"API接口参数为空", "flag":"appid:sign" }
解决方法:
1)请检查 appid 及 sign 是否为空;
2)确保 appid 是从官网获取到正确的接口授权;
3)确保 sign 计算生成是正确的。
API 接口参数无效
此错误返回 JSON 数据如下:
Copy
[code]{ "result":0, "description":"API接口参数无效", "flag":"appid" }
解决方法:
1)请检查 appid 是否正确;
2)确保 appid 是从官网获取到正确的接口授权。
API 接口授权已到期
此错误返回 JSON 数据如下:
Copy
[code]{ "result":0, "description":"API接口授权已到期", "flag":"end:2018-12-31 23:59:59" }
解决方法:
1)请检查 appid 对应接口授权的期限是否过期;
2)如果接口授权过期,请到官网更新(免费用户直接更新,无需续费)或续费(针对商业付费用户)。
签名错误
此错误返回 JSON 数据如下:
Copy
[code]{ "result":0, "description":"签名错误", "flag":"getUniversityInfo->sign" }
解决方法:
1)请检查 sign 签名计算是否正确;
2)签名 sign 根据公式
$sign=sha256(appid=$appid&module=getUniversityInfo&school=$school&appkey=$appkey)生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。
请求受限
此错误返回 JSON 数据如下:
Copy
[code]{ "result":0, "description":"请求受限", "flag":"getUniversityInfo->daylimit" }
解决方法:
1)授权接口已超出当前接口产品请求的最大限制;
2)请根据实际使用需求升级您的接口产品。
- POS 商户编号查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口
- 尾号限行api,单双号限行查询数据库接口调用代码示例
- eoLinker-API_Shop_天气类API调用的代码示例合集:全国天气预报、实时空气质量数据查询、PM2.5空气质量指数等
- 快递鸟物流查询接口API调用代码示例
- 快递鸟物流查询接口API调用代码示例
- 车型数据查询api文档数据调用代码
- 位置信息类API调用的代码示例合集:中国省市区查询、经纬度地址转换、POI检索等
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- eoLinker-API_Shop_短信服务接口-调用示例代码,支持PHP、Python、Java等语言
- php版淘宝网查询商品接口代码示例
- Java快递物流查询接口,怎么接入物流接口API,如何根据单号查询物流跟踪的详细信息的Demo详细说明。
- 天气API-----开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- 通讯服务类API调用的代码示例合集:短信服务、手机号归属地查询、电信基站查询等
- 开源免费天气预报接口API以及全国全部地区代码!!(国家气象局提供)
- PHP下使用CURL方式POST数据至API接口的代码
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- 药品查询接口,提供开放的药品API
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)