用户ip以及城市代码查询接口 http://61.4.185.48:81/g/
这个接口返回的是脚本所以需要使用$.getScript来请求
获得ip和id脚本代码
$.getScript("http://61.4.185.48:81/g/",function(data){ alert(id); alert(ip);
}
webservice工厂接口 http://www.36wu.com
快递查询接口http://webservice.36wu.com/ExpressService.asmx
ip查询接口http://webservice.36wu.com/ipService.asmx
天气预报接口http://webservice.36wu.com/weatherService.asmx
身份证查询接口http://webservice.36wu.com/IdCardService.asmx
手机归属地接口http://webservice.36wu.com/MobilePhoneService.asmx
翻译接口http://webservice.36wu.com/TranslationService.asmx
火车时刻接口http://webservice.36wu.com/TrainService.asmx
股票查询接口http://webservice.36wu.com/StockService.asmx
邮编接口http://webservice.36wu.com/ZipcodeService.asmx
二维码Web服务http://webservice.36wu.com/DimensionalCodeService.asmx
公交查询Web服务http://webservice.36wu.com/mapService.asmx
ISBN查询Web服务http://webservice.36wu.com/ISBNService.asmx
ICP备案查询Web服务http://webservice.36wu.com/ICPServic.asmx
谷歌的天气预报api http://php.weather.sina.com.cn/xml.php?city=城市名&password=DJOYnieT8234jlsK&day=0
说明 :返回的是xml格式数据
day = 0 表示今天 等于1就是明天咯 依次类推
city后名代码 表示城市 默认是南京
国家气象局提供的天气预报接口
接口地址:
http://www.weather.com.cn/data/sk/101010100.html
http://www.weather.com.cn/data/cityinfo/101010100.html
http://m.weather.com.cn/data/101010100.html
上面的地址请求的都是html文件,所以使用$.getJSON来请求接收数据是不行的,可以发出请求并收到响应数据,但是这个方法的回调函数会因为响应的数据格式是html格式的而不是json格式的而不执行。
action控制器返回的数据必须进行json封装成对象然后让$.getJSON来接收。
var dataObj=eval("("+data+")");//转换为json对象
php 服务器端代码
<?php$callback = isset($_GET["callback"])?$_GET["callback"]:"callback";$array4json-obj = array("aaa"=>$aaa,"aaa2"=>$bbb);//header('Content-Type: text/javascript; charset=utf8');//header('Access-Control-Allow-Origin: http://www.example.com/');//header('Access-Control-Max-Age: 3628800');header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');echo $callback . "(". json_encode($array4json-obj). ")";//json格式转换?>
如果没有处理成json格式的那么就不能使用$.getJSON来请求数据,必须使用ajax请求得到数据后,再转成json对象,才可以依照对象的方式调用数据
var data =(new Function("","return "+http_request.responseText))(); data.weatherinfo.city;
将javascript 中字符串数据转换为 json 对象有三种方法: 1. eval() 函数 2. 使用 new Function() 构造函数 3. 使用浏览器内置的JSON.parse 方法(IE Version > IE8(s)) 下面来说说使用这三种方法的建议: eval() 函数,很强大的函数,会模拟一个js 解析器,能解析任何js 代码,但是执行效率和安全性不是很高好,所能在做demo时候可以使用,但是在做项目是不推荐使用。 Function 构造函数方法,这是Jquery 中解析JSON数据的方法,查看他的源代码中即可看到,使用此方法,经人测试,比eval() 快很多倍 三种使用方法: var json = '{"name":"liangqi"; "sex":"boy"}'; jsonObj0 = eval('(' + json + ')'); jsonObj1 = (new Function('return' + json))(); if(window.JSON){ jsonObj2 = JSON.parse(json); } else { ... ... //针对比支持此方法的调用此处 }
对于第三个接口,返回信息比较全面,也是以json格式提供,格式如下
{"weatherinfo": {//基本信息;"city":"北京","city_en":"beijing","date_y":"2012年2月16日", "date":"", "week":"星期四", "fchh":"11", "cityid":"101010100",//摄氏温度"temp1":"2℃~-7℃","temp2":"1℃~-7℃","temp3":"4℃~-7℃","temp4":"7℃~-5℃","temp5":"5℃~-3℃","temp6":"5℃~-2℃",//华氏温度;"tempF1":"35.6℉~19.4℉","tempF2":"33.8℉~19.4℉","tempF3":"39.2℉~19.4℉","tempF4":"44.6℉~23℉","tempF5":"41℉~26.6℉","tempF6":"41℉~28.4℉",//天气描述;"weather1":"晴","weather2":"晴","weather3":"晴","weather4":"晴转多云","weather5":"多云","weather6":"多云转阴",//天气描述图片序号"img1":"0","img2":"99","img3":"0","img4":"99","img5":"0","img6":"99","img7":"0","img8":"1","img9":"1","img10":"99","img11":"1","img12":"2","img_single":"0",//图片名称;"img_title1":"晴","img_title2":"晴","img_title3":"晴","img_title4":"晴","img_title5":"晴","img_title6":"晴","img_title7":"晴","img_title8":"多云","img_title9":"多云","img_title10":"多云","img_title11":"多云","img_title12":"阴","img_title_single":"晴",//风速描述"wind1":"北风3-4级转微风","wind2":"微风","wind3":"微风","wind4":"微风","wind5":"微风","wind6":"微风",//风速级别描述"fx1":"北风","fx2":"微风","fl1":"3-4级转小于3级","fl2":"小于3级","fl3":"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级",//今天穿衣指数;"index":"冷","index_d":"天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。",//48小时穿衣指数"index48":"冷","index48_d":"天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。",//紫外线及48小时紫外线"index_uv":"弱","index48_uv":"弱",//洗车"index_xc":"适宜",//旅游"index_tr":"一般",//舒适指数"index_co":"较不舒适","st1":"1","st2":"-8","st3":"2","st4":"-4","st5":"5","st6":"-5",//晨练"index_cl":"较不宜",//晾晒"index_ls":"基本适宜",//过敏"index_ag":"极不易发"}}
1. XML接口 http://flash.weather.com.cn/wmaps/xml/china.xml 这个是全国天气的根节点,列出所有的省,其中的pyName字段是各个省XML的文件名,比如北京的是beijing,那就意味着北京的XML地址为 http://flash.weather.com.cn/wmaps/xml/beijing.xml 一个省的天气,其中列出该省各个市的数据,北京就列出各个区。 tmp1是最低温低,tmp2是最高温度,url非常重要,我们一会儿再说。state1和state2是神马转神马,每个数代表一个天气现象。天气现象非常多,我本想全部分析出来,后来直接放弃了这个想法。因为我看到了一个城市的天气现象的编码是26...我现在知道的有0.晴 1.多云 2.阴 6.雨夹雪 7.小雨 8.中雨 13.阵雪 14.小雪 其中后来发现知道这个没用,这个数字的主要作用是检索图片的!!!
2. 图片接口 http://m.weather.com.cn/img/c0.gif http://m.weather.com.cn/img/b0.gif http://www.weather.com.cn/m/i/weatherpic/29x20/d0.gif http://www.weather.com.cn/m2/i/icon_weather/29x20/n00.gif 这个图就是天气现象0(晴)的图片,其他天气现象的图片依此类推。c打头的图片是20*20像素的,b打头的是50*46像素的,d打头的是反白的图标,29*20像素,n打头的是夜间反白图标,29*20像素,注意这里的文件名是两位数字! 也许还有更多的图标,等待大家发掘啦~
3. JSON接口 真没想到~居然有JSON接口~JSON在iPhone上分析起来要比XML简单很多 http://m.weather.com.cn/data/101010200.html 这个是北京的JSON数据,那个HTML的名字是根据上文XML中的url得到的。这个JSON中包含了实时数据、7天天气预报、气象指数等丰富的数据
获取省级代码:http://www.weather.com.cn/data/list3/city.xml?level=1获取城市代码(比如安徽是22):http://www.weather.com.cn/data/list3/city22.xml?level=2获取区域代码(比如安庆是2206):http://www.weather.com.cn/data/list3/city2206.xml?level=3获取到安徽省安庆市望江县的代码是220607然后去加上中国代码请求URL:http://m.weather.com.cn/data/101220607.html就可以获取当地天气。
另外再给几个有用的探索得到的URL:天气 FLASH实况:http://flash.weather.com.cn/sk2/101220607.xml实况FLASH:http://flash.weather.com.cn/sk2/shikuang.swf?id=101220607
三级选择菜单(注明,这里有四个INPUT,其中有一个被隐藏了,可用FIREFOX改下源代码查看):http://www.weather.com.cn/static/custom/search3.htm实时天气(很有用哦):http://www.weather.com.cn/data/sk/101220607.html
转载于:https://www.cnblogs.com/wangyueren/archive/2012/10/10/2718488.html
相关资源:调用天气预报的API文档