为了方便您将这个功能集成在自己的网站或桌面程序中,我们提供了多种调用方式。您可以根据自己的实际情况,任选其一;您不必经过我们的允许即可随意使用,如果不能满足您的需求请与我们联系:
- 通过 WebService 调用获取数据
- 通过 HTTP Post/Get 获取 XML 格式的数据
- 通过 HTTP Post/Get 获取 JSON 格式的数据
- 通过 HTTP Post/Get 获取普通文本格式数据
- 通过 form 或 iframe 标签插入 Web 页面
- 通过 JavaScript 和 HTML 标签插入 Web 页面
注:
1. 各接口对应的手机号码参数,可以识别大多数的手机号码格式,全角半角均可,例如:139、1391234、13912345678、0139-1234-5678 等。
2. Web 页面的 URL 中表示手机号码的参数 m,除了支持上述格式外,还支持以下编码的 URI 格式:UTF-8,ANSI(GB2312 / GBK / GB13000 / GB18030),Unicode。例如,可以通过以下地址获取 137 的 xml 格式归属信息:
http://api.showji.com/locating/?m=%ef%bc%91%ef%bc%93%ef%bc%97&output=xml
(%ef%bc%91%ef%bc%93%ef%bc%97 是“137”的 UTF-8 编码的 URI 格式)
通过 WebService 调用获取数据
Web Service 地址:http://api.showji.com/locating/Mobile.asmx
只含有一个对象:Mobile。其成员如下:
获取手机号码归属地信息
函数原型:
bool Query(string Mobile, out string Province, out string City, out string AreaCode, out string PostCode, out string Corp, out string Card);
参数:
Mobile: 待查询的手机号码。 Province: 返回手机号码归属地的省份。 City: 返回手机号码归属地的城市。 AreaCode: 返回手机号码归属地的区号。 PostCode: 返回手机号码归属地的邮编。 Corp: 返回所属运营商。 Card: 返回所属卡类型。
返回值:
返回 bool 值,表示用户输入的号码是否可识别。
获取当前服务状态
函数原型:
bool GetStatus();
返回值:
返回 bool 值,表示当前服务是否可用。
备注:
没有必要每次查询前都检查服务的可用状态。即便服务不可用,执行 Query 也不会遇到错误,只是返回 false 而已。
示例程序下载(需要 C#.net 2008 环境) (12k)
通过 HTTP Post/Get 获取 XML / JSON / 普通文本 格式的数据
获取手机号码归属地信息
调用地址:
http://api.showji.com/locating/
url 参数:
m: 手机号码; output: 输出格式。可选 xml、json、text,分别对应 XLM、JSON、普通文本 格式; callback: 回调函数名称(可选)。仅当 output=json 时有效。 回调函数的名称只能包括以下字符:英文(A-Z,a-z),数字(0-9),点(.),下划线(_),方括号([,])。
返回数据的格式:
返回的 XML 格式(http://api.showji.com/locating/?m=13903111234&output=xml):
<?xml version="1.0" encoding="utf-8" ?> <QueryResponse xmlns="http://api.showj.com/Locating/"> <Mobile>13903111234</Mobile> <QueryResult>True</QueryResult> <Province>河北</Province> <City>石家庄</City> <AreaCode>0311</AreaCode> <PostCode>050000</PostCode> <Corp>中国移动</Corp> <Card>GSM</Card> </QueryResponse>返回的 JSON 格式(http://api.showji.com/locating/?m=13903111234&output=json):
{"Mobile":"13903111234", "QueryResult":"True", "Province":"河北", "City":"石家庄", "AreaCode":"0311", "PostCode":"050000", "Corp":"中国移动", "Card":"GSM"}返回带有回调函数的 JSON 格式(http://api.showji.com/locating/?m=13903111234&output=json&callback=querycallback):
querycallback({"Mobile":"13903111234", "QueryResult":"True", "Province":"河北", "City":"石家庄", "AreaCode":"0311", "PostCode":"050000", "Corp":"中国移动", "Card":"GSM"})返回 普通文本 格式(http://api.showji.com/locating/?m=13903111234&output=text):
Mobile:13903111234 QueryResult:True Province:河北 City:石家庄 AreaCode:0311 PostCode:050000 Corp:中国移动 Card:GSM
调用范例:
带有回调函数的 JSON 调用范例请参见 获取当前服务状态 部分。 其他调用范例省略。
获取当前服务状态
调用地址:
http://api.showji.com/locating/Status.aspx
url 参数:
output: 输出格式。可选 xml、json、text,分别对应 XML、JSON、普通文本 格式。 callback: 回调函数名称(可选)。仅当 output=json 时有效。 回调函数的名称只能包括以下字符:英文(A-Z,a-z),数字(0-9),点(.),下划线(_),方括号([,])。
返回数据的格式:
返回的 XML 格式(http://api.showji.com/locating/Status.aspx?output=xml):
<?xml version="1.0" encoding="utf-8" ?> <QueryResponse xmlns="http://api.showji.com/Locating/"> <Status>True</Status> </QueryResponse>返回的 JSON 格式(http://api.showji.com/locating/Status.aspx?output=json):
{"Status":"True"}返回带有回调函数的 JSON 格式(http://api.showji.com/locating/Status.aspx?output=json&callback=querycallback):
querycallback({"Status":"True"})返回 普通文本 格式(http://api.showji.com/locating/Status.aspx?output=text):
Status:True
调用范例:
以下示范如何在 html 页面中使用 JavaScript 获取的 Json 数据:
<html xmlns="http://www.w3.org/1999/xhtml" > <head></head> <body> <p>当前服务状态:<span id="Status">检测中……</span></p> <script type="text/javascript"> function querycallback(obj) { if (obj["Status"] == "True") s = "正常。"; else s = "服务不可用。"; document.getElementById("Status").innerText = s; } </script> <script type="text/javascript" src="http://api.showji.com/locating/Status.aspx?output=json&callback=querycallback"></script> </body> </html>
通过 form 或 iframe 标签插入 Web 页面
任选以下代码插入到您的网页中,就可以为您的网页提供查询手机号码归属地的功能(您可先修改部分代码,再运行):
1. 基于 form 形式(打开完整页面)
这种形式占用页面的空间小,查询的时候会打开新窗口。代码如下:
2. 基于 form 形式(打开小窗口)
这种形式占用页面的空间小,查询的时候会打开新窗口。代码如下:
3. 基于 iframe 形式
这种形式可以不打开新窗口,所有查询都在一个页面内,只是占用的页面空间比较大。代码如下:
4. 基于 超链接 形式
http://api.showji.com/Locating/query.aspx?m=13900008888
通过 JavaScript 脚本和 HTML 标签插入 Web 页面
这种方式可以实现样式的任意定制,客户端仅需要包含一个 JavaScript 脚本和显示结果的 HTML 代码即可。并且,定制的页面支持来自 GET 方式的提交,从而本地可以定制多种查询情况。以下范例中红色标出的部分,请不要随意修改。
页面 part1.htm,实现完整的查询页面:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form onsubmit="return query();"> 请输入手机号码:<input id="m" size="15" maxlength="15" /> <input type="Submit" value="查询" id="btnQuery" /> </form> <div id="panelError" style="display:none;height:100%;text-align:center"> <span id="txtError" style="color:red">您输入的手机号码有误</span> </div> <div id="panelResult" style="display:none"> 手机号码:<span id="txtMobile"></span><br/> 所属省份:<span id="txtProvince"></span><br/> 所属城市:<span id="txtCity"></span><br/> 区 号:<span id="txtAreaCode"></span><br/> 邮 编:<span id="txtPostCode"></span><br/> 类 型:<span id="txtCard"></span><br/> </div> <div id="panelNotice" style="display:none; height:100%"></div> <script type="text/javascript" src="http://api.showji.com/Locating/Query.js"></script> </body> </html>
页面 part2.htm,简单的查询文本框,可提交查询至 part1.htm(如果要修改文件名,请确保其一致)。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form name="formLocating" action="part1.htm" method="GET"> <input type="text" name="m" value="请输入手机号码" onclick=this.value="" /> <input type="submit" /> </form> </body> </html>
页面 part2.htm 如果使用 POST 方式提交,必须满足以下条件:part1.htm 必须经服务器端脚本解析。例如使用 part1.asp 取代 part1.htm。同时,必须在引用 Query.js 前,增加如下代码:
<script type="text/javascript">
strMobile=“<%=Request("m")%>”;
</script>