王梅(姓名),女(性别),西安工程大学电子信息学院,2022级研究生
研究方向:机器视觉与人工智能
电子邮件:[email protected]
王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:[email protected]
API(Application Programming Interface)API是应用程序接口,API可以被看作是两个软件系统之间的桥梁,它定义了一组规则和协议,使得不同的应用程序能够相互通信、共享数据和功能。
比如:当你去一家餐厅点餐,你不需要直接进入厨房和厨师交谈,而是通过服务员来传达你的需求。在这个例子中,服务员就像一个API,它作为一个中间人帮助你和厨师进行沟通和交流。
随着各大电商网购平台的发展,快递业已形成一个规模庞大的产业,据统计,全球快递企业已超过千家,而快递查询对于电商平台而言是最基础的功能之一,用户通过查询API接口提交快递单号后,查询API接口会调取快递公司的单号信息并返回此单号最新的物流信息,包括物流轨迹、配送状态、更新时间等。目前的主流方法都是调用第三方快递查询接口。快递查询API有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据。目前常用的有快递鸟、快递100、聚合数据、阿里云物流等。
(1)功能亮点
全国快递物流查询服务,支持快递公司600+家,接口稳定,时效性高。
主动发起查询请求返回最新物流详情,输入一个单号即可一键查询全程的物流轨迹信息。
根据用户提交的快递单号,智能判断该单号所属快递公司。
基于快递公司单号规则和千万级快递单号大数据,单号识别率超过98%。
(2)应用场景举例
(1)注册/登录阿里云,可选择支付宝扫码登录和手机号验证登录。
(2)打开阿里云官网选择,云市场-API-全国快递物流查询
(3)选择立即购买-实名认证
(4)首页-买家中心-进入管理控制台-已购买服务-获取Appcode
(5) 在产品界面下拉获取Python代码
(6)请求参数
(7)返回结果
import requests
host = 'https://wuliu.market.alicloudapi.com'
path = '/kdi'
method = 'GET'
appcode = 'ebffbc29cb4d46af85a3634895d3a03a' # 开通服务后 买家中心-查看AppCode
querys = 'no=YT1804657706443' # 请求参数
bodys = {} # 定义了一个空字典,用于存储请求的body参数
url = host + path + '?' + querys # 构建了完整的URL,包括主机、路径和查询参数
header = {"Authorization": 'APPCODE ' + appcode}
try:
res = requests.get(url, headers=header)
except:
print("URL错误")
exit() # 发送了GET请求,并将结果存储在res变量中。如果在发送请求时出现错误,会打印"URL错误"并退出程序
httpStatusCode = res.status_code # 获取状态码
if httpStatusCode == 200: # 如果状态码为200,表示请求成功,打印"正常请求计费(其他均不计费)",并打印响应的文本内容
print("正常请求计费(其他均不计费)")
print(res.text)
else:
httpReason = res.headers['X-Ca-Error-Message'] # 进一步判断错误原因
# 根据状态码和错误原因,判断出现的具体错误,并打印相应的错误信息
if httpStatusCode == 400 and httpReason == 'Invalid Param Location':
print("参数错误")
elif httpStatusCode == 400 and httpReason == 'Invalid AppCode':
print("AppCode错误")
elif httpStatusCode == 400 and httpReason == 'Invalid Url':
print("请求的 Method、Path 或者环境错误")
elif httpStatusCode == 403 and httpReason == 'Unauthorized':
print("服务未被授权(或URL和Path不正确)")
elif httpStatusCode == 403 and httpReason == 'Quota Exhausted':
print("套餐包次数用完")
elif httpStatusCode == 403 and httpReason == 'Api Market Subscription quota exhausted':
print("套餐包次数用完,请续购套餐")
elif httpStatusCode == 500:
print("API网关错误")
else:
print("参数名错误 或 其他错误")
print(httpStatusCode)
print(httpReason)
D:\anconada\python.exe "C:/Users/10956/Desktop/各科作业/第二学期/AI-Course/AILI API/test.py"
正常请求计费(其他均不计费)
{"status":"0","msg":"ok","result":{"number":"780098068058","type":"zto","list":[{"time":"2018-03-09 11:59:26","status":"【石家庄市】 快件已在 【长安三部】 签收,签收人: 本人, 感谢使用中通快递,期待再次为您服务!"},{"time":"2018-03-09 09:03:10","status":"【石家庄市】快件已到达【长安三部】(0311-85344265),业务员 容晓光(15908220064)正在第1次派件"},{"time":"2018-03-08 23:43:44","status":"【石家庄市】 快件离开 【石家庄】 发往 【长安三部】"},{"time":"2018-03-08 21:00:44","status":"【石家庄市】 快件到达 【石家庄】"},{"time":"2018-03-07 01:38:45","status":"【广州市】 快件离开 【广州中心】 发往 【石家庄】"},{"time":"2018-03-07 01:36:53","status":"【广州市】 快件到达 【广州中心】"},{"time":"2018-03-07 00:40:57","status":"【广州市】 快件离开 【广州花都】 发往 【石家庄中转】"},{"time":"2018-03-07 00:01:55","status":"【广州市】 【广州花都】(020-37738523) 的 马溪 (18998345739) 已揽收"}],"deliverystatus":"3","issign":"1","expName":"中通快递","expSite":"www.zto.com","expPhone":"95311","courier":"容晓光","courierPhone":"15908220064","updateTime":"2019-08-27 13:56:19","takeTime":"2天20小时14分","logo":"https://img3.fegine.com/express/zto.jpg"}}
进程已结束,退出代码 0