2019-nCoV肺炎疫情同程查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/trip2019ncov
手机查询链接(已开发好的):www.woyaocha.net/trip2019ncov
接口使用
我要查询
提示:请在下面的 Demo 中输入您要查询的数据,点击查询即可;车次/航班/车牌号、始发站/终点站/地区及同城日期输入一项即可查询。当记录数比较多时,仅展现最新的 50 条数据。
查询说明
目前支持火车/航班/客运班车的同程查询,可查询始发站、途经站、终点站地区。防疫期间,数据更新每天更新3-5次。
接口描述
功能描述
获取与武汉新型冠状病毒感染的肺炎换车同程信息,如:乘车日期、车次/航班/车牌号、始发站、终点站(包含途径地区)、详情等信息。
URL 示例
1)http
协议:
POST 方式请求:
Copy
http://cha.ebaitian.cn/api/json?appid=xxx&module=getTrpi2019ncov&tripno=xxx&triparea=xxx&tripdate=xxx&sign=xxx
GET 方式请求:
Copy
http://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getTrpi2019ncov&tripno=xxx&triparea=xxx&tripdate=xxx&sign=xxx
2)https
协议:
POST 方式请求:
Copy
https://cha.ebaitian.cn/api/json?appid=xxx&module=getTrpi2019ncov&tripno=xxx&triparea=xxx&tripdate=xxx&sign=xxx
GET 方式请求:
Copy
https://cha.ebaitian.cn/api/json?type=get&appid=xxx&module=getTrpi2019ncov&tripno=xxx&triparea=xxx&tripdate=xxx&sign=xxx
请求参数
数据包体
Copy
{"type": "get","appid": "1000xxxx","module": "getTrpi2019ncov","tripno": "K4094","triparea": "北京","tripdate": "2020/1/16","sign": "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4"
}
参数说明
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
type | 否 | string | 授权接口的请求方式 |
appid | 是 | string | 授权接口的 AppID,请填写您在我要查官网上申请到的 AppID |
module | 是 | string | 目标请求的数据模块,查询肺炎疫情同程为:getTrpi2019ncov |
tripno | 是 | string | 目标要查询的车次/航班/车牌号 |
triparea | 是 | string | 目标要查询的始发站/终点站/地区 |
tripdate | 是 | string | 目标要查询的同程日期 |
sign | 是 | string | 请求凭证,具体计算方式见下面的其他说明 |
其他说明
1)type:可选值 get,如果赋值 get,则以 get 方式提交数据;默认以 post 方式提交数据;
2)sign:签名校验,根据公式 $sign=sha256(appid=$appid&module=getTrpi2019ncov&tripno=$tripno&triparea=$triparea&tripdate=$tripdate&appkey=$appkey)
生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。
2)参数 tripno/triparea/tripdate 三者选择其一传入即可。
构造伪代码如下:
Copy
string type = "get"; //请求方式,可以赋值为:post
string appid = "1000xxxx"; //sdkappid 对应的 appid,需要业务方高度保密
string module = "getTrpi2019ncov"; //请求的数据模块,此处赋值:getTrpi2019ncov
string tripno = "K4094"; //要查询的车次/航班/车牌号
string triparea = "北京"; //要查询的始发站/终点站/地区
string tripdate = "2020/1/16"; //要查询的同程日期
string sign = sha256(appid=1000xxxx&module=getTrpi2019ncov&module=getTrpi2019ncov&tripno=K4094&triparea=北京&tripdate=2020/1/16&appkey=56cf61af4b7897e704f67deb88ae8f24);
响应参数
数据包体
Copy
{"result":1,"description":"TRUE","flag":"","trip2019ncovInfo":{"data":[{"tripdate":"2020/1/16","tripno":"K4094","depstation":"武穴","terminus":"北京","dataurl":"https://mp.weixin.qq.com/s/f2DB2Ig3XdDqHvSuus6BoQ"}]}
}
参数说明
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | string | 接口响应结果:0-失败;1-成功 |
description | 是 | string | 接口响应描述:一般为 TURE(result=1) 与 FALSE(result=0),或者返回错误信息 |
flag | 否 | string | 错误说明,没有错误则返回空 |
trip2019ncovInfo | 是 | object | 返回同程信息 |
trip2019ncovInfo 参数说明:
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
data | 是 | object | 查询结果数据集合 |
data 参数说明:
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
tripdate | 是 | string | 日期 |
tripno | 是 | string | 车次/航班/车牌号 |
depstation | 是 | string | 始发站 |
terminus | 是 | string | 终点站 |
dataurl | 是 | string | 同城信息数据采集来源,或同城信息详情链接地址 |
SDK 及代码示例
PHP SDK
方法一:以 POST 方式请求数据
Copy
//接口参数
$api_url='http://cha.ebaitian.cn/api/json';
$api_appid='1000xxxx';
$api_appkey='56cf61af4b7897e704f67deb88ae8f24';//函数,以POST方式提交数据,PHP需要开启CURL函数;数据传输安全,建议使用
function getTrpi2019ncov($tripno,$triparea,$tripdate){global $api_url,$api_appid,$api_appkey;$posturl=$api_url;$data='appid='.$api_appid.'&module=getTrpi2019ncov&tripno='.$tripno.'&triparea='.$triparea.'&tripdate='.$tripdate;$sign=hash("sha256",$data.'&appkey='.$api_appkey);$postdata=array("appid"=>$api_appid,"appkey"=>$api_appkey,"module"=>"getTrpi2019ncov","tripno"=>$tripno,"triparea"=>$triparea,"tripdate"=>$tripdate,'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->trip2019ncovInfo->data;}else{$value=$obj->flag;}return $value;
}
//调用函数
$tripno='K4094';
$triparea='';
$tripdate='';
echo getTrpi2019ncov($tripno,$triparea,$tripdate);
exit;
方法二:以 GET 方式请求数据
Copy
//接口参数
$api_url='http://cha.ebaitian.cn/api/json';
$api_appid='1000xxxx';
$api_appkey='56cf61af4b7897e704f67deb88ae8f24';//函数,以GET方式提交数据
function getTrpi2019ncov($tripno,$triparea,$tripdate){global $api_url,$api_appid,$api_appkey;$data='appid='.$api_appid.'&module=getTrpi2019ncov&tripno='.$tripno.'&triparea='.$triparea.'&tripdate='.$tripdate;$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['trip2019ncovInfo']['data'];}else{$value=$info_json['flag'];}return $value;
}
//调用函数
$tripno='K4094';
$triparea='';
$tripdate='';
echo getTrpi2019ncov($tripno,$triparea,$tripdate);
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="getTrpi2019ncov";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 queryTrpi2019ncov(String tripno, String triparea, String tripdate){String sign=getSHA256Str("appid="+appid+"&module="+module+"&tripno="+tripno+"&triparea="+triparea+"&tripdate="+tripdate+"&appkey="+appkey);String url=apiurl+"?type=get&appid="+appid+"&module="+module+"&tripno="+tripno+"&triparea="+triparea+"&tripdate="+tripdate+"&sign="+sign;return get(url);}
}//使用示例
QueryHelper.queryTrpi2019ncov('K4094','','');
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='getTrpi2019ncov'
tripno='K4094'
triparea=''
tripdate=''
data='appid='+appid+'&module='+module+'&tripno='+tripno+'&triparea='+triparea+'&tripdate='+tripdate
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,'tripno':tripno,'triparea':triparea,'tripdate':tripdate,'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 = 'getTrpi2019ncov';//目标查询车次/航班/车牌号
var tripno='K4094';//目标查询始发站/终点站/地区
var triparea='';//目标要查询同程日期
var tripdate='';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&tripno='+tripno+'&triparea='+triparea+'&tripdate='+tripdate+'&appkey='+appkey);//这是需要提交的数据
var post_data = {appid: appid, module: module,tripno: tripno,triparea: triparea,tripdate: tripdate,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 = 'getTrpi2019ncov';//目标查询车次/航班/车牌号
var tripno='K4094';//目标查询始发站/终点站/地区
var triparea='';//目标要查询同程日期
var tripdate='';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&tripno='+tripno+'&triparea='+triparea+'&tripdate='+tripdate+'&appkey='+appkey);//这是需要提交的数据
var data = {appid: appid, module: module,tripno: tripno,triparea: triparea,tripdate: tripdate,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 gettrip2019ncovInfo{public static string getInfo(string appid, string appkey, string module, string tripno, string triparea, string tripdate){string url = string.Format("http://cha.ebaitian.cn/api/json?type=get&appid={0}&module={1}&tripno={2}&triparea={3}&tripdate={4}&sgin={5}", appid, module, tripno, triparea, tripdate, sgin);using (WebClient client = new WebClient()){client.Encoding = Encoding.UTF8;return client.DownloadString(url);}}
}string trip2019ncovInfo = gettrip2019ncovInfo.getInfo("1000xxxx", "getTrpi2019ncov", "K4094", "", "", "ecab4881ee80ad3d76bb1da68387428ca752eb885e52621a3129dcf4d9bc4fd4", Request.UserHostAddress);
Console.WriteLine(trip2019ncovInfo);
Response.Write(trip2019ncovInfo);
JavaScript SDK
方法一:以 POST 方式请求数据
Copy
//使用 JQuery 请先加载最新的 JQuery 插件
//参数设置
var apiurl = 'http://cha.ebaitian.cn/api/json';
var appid = '1000xxxx';
var appkey = '56cf61af4b7897e704f67deb88ae8f24';
var module = 'getTrpi2019ncov';//目标查询车次/航班/车牌号
var tripno='K4094';//目标查询始发站/终点站/地区
var triparea='';//目标要查询同程日期
var tripdate='';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&tripno='+tripno+'&triparea='+triparea+'&tripdate='+tripdate+'&appkey='+appkey);//提交数据
$.ajax({url:apiurl,type:'post',dataType:'json',data:{appid:appid,module:module,tripno: tripno,triparea: triparea,tripdate: tripdate,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 = 'getTrpi2019ncov';//目标查询车次/航班/车牌号
var tripno='K4094';//目标查询始发站/终点站/地区
var triparea='';//目标要查询同程日期
var tripdate='';//签名,SHA256 不可直接调用;函数参考下载地址:https://github.com/alexweber/jquery.sha256
var sign = SHA256('appid='+appid+'&module='+module+'&tripno='+tripno+'&triparea='+triparea+'&tripdate='+tripdate+'&appkey='+appkey);//提交数据
$.ajax({url:apiurl,type:'post',dataType:'json',data:{appid:appid,module:module,tripno: tripno,triparea: triparea,tripdate: tripdate,sign:sign},success:function(res){console.log(res);}
});
ASP SDK
Copy
'设置参数
dim apiurl, appid, appkey, module, tripno, triparea, tripdate, sign
apiurl="http://cha.ebaitian.cn/api/json"
appid="1000xxxx'
appkey="56cf61af4b7897e704f67deb88ae8f24"
module="getTrpi2019ncov"
tripno="K4094"
triparea=""
tripdate=""'签名,SHA256 不可直接调用;函数参考地址:https://blog.csdn.net/yesoce/article/details/128546
sgin=SHA256("appid=&appid&"&module="&module&"&tripno="&tripno&"&triparea="&triparea&"&tripdate="&tripdate&"&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&"&tripno="&tripno&"&triparea="&triparea&"&tripdate="&tripdate&"&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":"getTrpi2019ncov->sign"
}
解决方法:
1)请检查 sign 签名计算是否正确;
2)签名 sign 根据公式 $sign=sha256(appid=$appid&module=getTrpi2019ncov&mobile=$mobile&appkey=$appkey)
生成;其中:appkey 为授权接口的 AppKey,请填写您在我要查官网上申请到的 AppKey 。
请求受限
此错误返回 JSON 数据如下:
Copy
{"result":0,"description":"请求受限","flag":"getTrpi2019ncov->daylimit"
}
解决方法:
1)授权接口已超出当前接口产品请求的最大限制;
2)请根据实际使用需求升级您的接口产品。
2019-nCoV肺炎疫情同程查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口相关推荐
- 行政区划代码查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/area 接口描述 功能描述 根据行政区划代码获取行政区划名称,或者根据行政区划名称获取行政区划代码. URL 示例 1)http 协 ...
- POS 商户编号查询-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/posmcc 接口描述 功能描述 通过商户编号获取中国大陆地区所有线下收单机构的商户信息,如:收单机构.MCC编码类别.适用费率及商户 ...
- 快递查询(快递单号智能识别/快递公司+快递单号)-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/express 查询说明 接口一:快递单号智能识别 快递单号智能识别,是根据查询的快递单号自动智能识别出该运单所属的快递公司,再获取快 ...
- 院校代码/高等学校查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/school 接口描述 功能描述 通过院校名称获取院校对应的院校代码/高等学校,或者通过院校代码/高等学校获取对应的院校名称:后期将会 ...
- 手机号码查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口
更多资料请参考:www.woyaocha.net/product/mobile 接口描述 功能描述 获取手机号码段的省市区以及运营商名称,通俗的说就是获取手机号码的归属地及电信运营商名称. URL 示 ...
- 深圳ncov肺炎疫情分布点高德地图显示
一.简介 如题,通过深圳市政府数据开放平台查询到的疫情分布点地址数据,批量请求高德API,将查询到坐标显示到网页地图上,先上效果(挺愕然的,本主自己的住处附近就有好几个点),如下: 二.实现工具: ( ...
- 让狙击肺炎疫情稳准狠?春运返程中地图大数据的N种姿态
"经历了骚乱与惶恐,他那支颤抖的笔对安宁与和平有着深沉的渴望." 这是美国大文化历史学家雅克·巴尔赞在其著作<从黎明到衰落>一书中对大哲学家培根的描述.一句话高度浓缩了 ...
- db2分页查询语句优化_面试官:数据量很大,分页查询很慢,怎么优化?
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...
- es java api 查询_es聚合查询javaapi
查询节气详情 package net.apishop.www.controller; import import import import import import import import i ...
最新文章
- c# dbgrid数据导出到xlsx和ini中实例
- 一个代理商×××条件
- 用javascript自制ctf词频分析工具
- 我整理了100G的.Net学习资料,速来领取!
- 计算机组成原理试题 t4,计算机组成原理(四版)本科生试题库整理附答案
- QT控件出现乱码问题
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍...
- 传输层协议(13):拥塞控制(2)
- 六十八个超级经典小故事
- 如何让语音芯片与功放芯片之间更好的配合,使得产品音效更好
- VMware安装VMware tools步骤
- 通过自定义函数计算阶乘
- wincc上下文不存在或无效是_wincc安装
- Toast的几种用法
- windows 用choco 安装nvm
- 珠海分销系统官网开发笔记:wordpress中使用canonical标签修复版
- 盘点2016年人工智能与深度学习领域的十大收购
- 他一年开发19款!款款口碑爆棚
- LED常见失效案例及分析
- zabbix添加邮件报警机制