• shell调用百度api store查询手机号码归属地

    2016/09/24 泰坦

api store是属于一个API聚合平台,可以向外提供各种的数据服务,比较有代表性的有dev store,百度api store和聚合数据等等,这类服务通过向外提供rest api接口来暴露给第三方的开发者。
api store提供了很多类型的数据服务,有生活常用,应用开发,金融理财,旅游票务等等api,但是有些接口是有收费的,同时也提供了很多免费的接口,这里就用手机号码归属地查询作为一个demo来做api的调用展示。
在处理restful api这块,一直是java的强项,特别是近年来流行的spring boot框架,微服务的理念已成为流行的趋势。这里介绍用更轻量级的shell来调用api接口,同时温习一下shell的脚本吧。
shell处理restful api时,shell支持curl命令,curl命令对http模拟发送http请求提供很良好的支持。同时在处理json数据这块,shell提供了jq工具,对json进行了很好的解释支持。
一、实现思路
本文的调用的api来自于百度api store,其官方公布的api接口如下:
curl –get –include ‘http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone=15210011578’ -H ‘apikey:您的apikey’
JSON返回示例 :

二、返回结果json的解析
1.jq的安装和使用:
mac的安装命令:brew install jq
CentOS or Ubuntu安装命令:apt-get -qq -y install jq || yum -y install jq
2.jsonStr代表以上的json返回示例。
echo $jsonStr | jq ‘.’ #格式化json并校验json字符串是否合法
3.提取json的字段值
retMsg=`echo $jsonStr | jq ‘.retMsg’ ` #取得返回的retMsg
phone=`echo $jsonStr | jq ‘.retData’ | jq ‘.phone’` #取得返回的phone
三、源代码实现

1 收藏


直接登录