java web service实现天气预报功能
2个回答
2015-07-03 · 知道合伙人互联网行家
关注
展开全部
前台js界面代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | //省份 function LoadProvince() { $.ajax({ type: "POST" , url: "ashx/weatherHandler.ashx" , data: "option=province" , success: function (result) { $( ".sel-province option" ).remove(); var arry = result.split( '|' ); var obj = null ; for ( var i = 0; i < arry.length; i++) { if (arry[i] != null && arry[i] != "" ) { obj = arry[i].split( ',' ); $( ".sel-province" ).append( "<option value='" + obj[1] + "'>" + obj[0] + "</option>" ); } } $( ".sel-province" ).find( "option[text='北京']" ).attr( "selected" , "selected" ); }, error: function (errorMsg) { $( ".result-table tr" ).remove(); $( ".result-table" ).append( "<tr><td>省份请求出现错误,请您稍后重试。。。</td></tr>" ); } }); } //城市 function LoadCity(provinceid) { $.ajax({ type: "POST" , url: "ashx/weatherHandler.ashx" , data: "provinceid=" + provinceid + "&option=city" , success: function (result) { $( ".sel-city option" ).remove(); var arry = result.split( '|' ); var obj = null ; for ( var i = 0; i < arry.length; i++) { if (arry[i] != null && arry[i] != "" ) { obj = arry[i].split( ',' ); $( ".sel-city" ).append( "<option value='" + obj[1] + "'>" + obj[0] + "</option>" ); } } }, error: function (errorMsg) { $( ".result-table tr" ).remove(); $( ".result-table" ).append( "<tr><td>城市请求出现错误,请您稍后重试。。。</td></tr>" ); } }); } //加载天气 function GetWeather(cityid) { $.ajax({ type: "POST" , url: "ashx/weatherHandler.ashx" , data: "cityid=" + cityid + "&option=weather" , success: function (result) { $( ".result-table tr" ).remove(); var arry = result.split( '|' ); var obj = null ; for ( var i = 0; i < arry.length; i++) { if (arry[i] != null && arry[i] != "" ) { if (arry[i].indexOf( ".gif" ) > 0) { $( ".result-table" ).append( "<tr><td><image src='images/" + arry[i] + "'/></td></tr>" ); } else { $( ".result-table" ).append( "<tr><td>" + arry[i] + "</td></tr>" ); } } } }, error: function (errorMsg) { $( ".result-table tr" ).remove(); $( ".result-table" ).append( "<tr><td>天气数据请求出现错误,请您稍后重试。。。</td></tr>" ); } }); } |
html代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | < body > < form id = "form1" runat = "server" > < div class = "head-div" > < table > < tr > < td > < select class = "sel-province sel" > </ select > </ td > < td > < select class = "sel-city sel" > </ select > </ td > < td > < input type = "button" class = "btn-search" value = "查询" /> </ td > </ tr > </ table > </ div > < div class = "result-div" > < table class = "result-table" > </ table > </ div > </ form > </ body > |
由于js不支持跨域,直接ajax+ashx一般处理程序(在里面调用天气接口)。一般处理程序代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | using System.Web; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; namespace WeatherTest.ashx { /// <summary> /// weatherHandler 的摘要说明 /// </summary> public class weatherHandler : IHttpHandler { WeatherWsClient.WeatherWSSoapClient client = new WeatherWsClient.WeatherWSSoapClient(); public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain" ; string[] result = null ; string option = context.Request.Form[ "option" ]; switch (option) { case "province" : result = GetProvinces(); break ; case "city" : result = GetCitys(context.Request.Form[ "provinceid" ]); break ; case "weather" : result = GetWeather(context.Request.Form[ "cityid" ], null ); break ; } string str = ConvertToString(result, option); context.Response.Write(str); } /// <summary> /// 数组转字符串 /// </summary> /// <param name="result"></param> /// <param name="option"></param> /// <returns></returns> private string ConvertToString(string[] result, string option) { StringBuilder sb = new StringBuilder(); foreach (string item in result) { sb.Append(item+ "|" ); } return sb.ToString(); } /// <summary> /// 省份 /// </summary> /// <returns></returns> private string[] GetProvinces() { return client.getRegionProvince(); } /// <summary> /// 城市 /// </summary> /// <param name="provinceid"></param> /// <returns></returns> private string[] GetCitys(string provinceid) { return client.getSupportCityString(provinceid); } /// <summary> /// 天气数据 /// </summary> /// <param name="cityid"></param> /// <param name="userid"></param> /// <returns></returns> private string[] GetWeather(string cityid, string userid) { return client.getWeather(cityid, userid); } public bool IsReusable { get { return false ; } } } } |
2013-08-22
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询