当前位置:首页 > 网站入侵 > 正文内容

java天气预报接口(天气获取接口)

hacker2年前 (2022-10-28)网站入侵92

本文目录一览:

天气预报API接口是什么?

天气预报API接口是气象服务商为客户提供服务的唯一接口。拿墨迹赤必为例,跟客户充分沟通后了解客户的实际需求,从而对现有的数据进行调整,符合客户的需求形成API接口,让客户接入,这样就形成了一个完整的服务。所以说API接口并不是一个很神秘的东西,只不过是企业和客户之间的一条服务纽带。

如何用java远程访问天气预报接口

连接中央气象台的API URL url = new URL("" + Cityid + ".html"); URLConnection connectionData = url.openConnection(); connectionData.setConnectTimeout(1000);

开发个java servlet 接口,主要是处理用户查询天气预报的请求,返回相应的结果。

简单的 *** ,可以直接在servlet的doGet或doPost里面构建这个xml,然后写回响应就可以了。

需要搭建java应用服务器如tomcat服务器,运行这个servlet就可以。

xml的构建对于Java来说工具很多,JDOM, Dom4J等。

如果客户端要求用web service方式提供,就考虑Apache CXF这些Java Web服务框架,不过一般没必要的。

java web service实现天气预报功能

前台js界面代码:

//省份

        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("trtd省份请求出现错误,请您稍后重试。。。/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("trtd城市请求出现错误,请您稍后重试。。。/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("trtdimage src='images/" + arry[i] + "'//td/tr");

                            }

                            else {

                                $(".result-table").append("trtd" + arry[i] + "/td/tr");

                            }

                        }

                    }

                },

                error: function (errorMsg) {

                    $(".result-table tr").remove();

                    $(".result-table").append("trtd天气数据请求出现错误,请您稍后重试。。。/td/tr");

                }

            });

        }

html代码:

body

    form id="form1" runat="server"

    div class="35c5-a082-0801-b697 head-div"

        table

            tr

                td

                    select class="a082-0801-b697-6417 sel-province sel"

                    /select

                /td

                td

                    select class="0801-b697-6417-1e44 sel-city sel"

                    /select

                /td

                td

                    input type="button" class="b697-6417-1e44-2489 btn-search" value="查询" /

                /td

            /tr

        /table

    /div

    div class="6417-1e44-2489-3de1 result-div"

        table class="1e44-2489-3de1-c0b7 result-table"

        /table

    /div

    /form

/body

由于js不支持跨域,直接ajax+ashx一般处理程序(在里面调用天气接口)。一般处理程序代码如下:

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  ***  = new StringBuilder();

            foreach (string item in result)

            {

                 *** .Append(item+"|");

            }

            return  *** .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;

            }

        }

    }

}

java调天气预报

①取出地址中的返回值(getWeatherReader *** )

②解析json格式的字符串

③形成你要展示的天气预报效果

public static String getWeatherReader() {//取得接口字符串

String currentLine = "";

String strReturn = "";

URL url = null;

HttpURLConnection conn = null;

InputStream in = null;

BufferedReader buff = null;

try {

url = new URL("");

System.out.println(url.toURI());

//打开地址链接

conn = (HttpURLConnection)url.openConnection();

conn.connect();

//接收数据

in = conn.getInputStream();

//如有乱码注意编码方式,如:UTF-8

buff = new BufferedReader(new InputStreamReader(in, "gb2312"));

while((currentLine = buff.readLine()) != null) {

strReturn += currentLine;

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

in.close();

buff.close();

} catch (IOException e) {

return "8EF0000";

}

}

return strReturn;

}

扫描二维码推送至手机访问。

版权声明:本文由黑客技术发布,如需转载请注明出处。

本文链接:https://w-123.com/211428.html

“java天气预报接口(天气获取接口)” 的相关文章

乌克兰安全局宣称逮捕了协助俄军开展通讯中继服务的黑客

Vice 报道称,在最近一次行动中,乌克兰安全局(SBU)声称抓获了一名在乌境内为俄军提供通信服务的黑客。在当天上午 10 点发布的推文和电报消息中,SBU 分享了本次行动的诸多细节。尽管尚未得到另一独立消息源的证实,但我们已经看到了面部打码的黑客、以及所谓的通信系统照片。 电报帖子指出,黑客...

微软分享针对 Mac 的 UpdateAgent 复杂木马的细节

网络安全仍然是一个不断发展的领域,对威胁者和安全专家来说都是如此。尽管如此,最近产生的一个积极因素是,公司更愿意与合作伙伴、专家和更大的社区分享信息,共同应对威胁。这方面的一个例子是,微软与苹果合作修补macOS设备中的”Shrootless”漏洞。微软已经提供了有关一个针对Mac的复杂木马的详细信...

黑掉微软英伟达三星 黑客组织 Lapsus$ 主谋疑似 16 岁英国少年

据报道,日前,微软、英伟达等科技公司遭到一系列黑客攻击,而网络安全人员在调查中,把目标锁定在了英国英格兰牛津一位16岁少年。四名网络安全专家目前正代表微软等被攻击公司展开调查,对名为“Lapsus$”的黑客组织进行调查,专家们判断,上述16岁少年是这个黑客组织的主谋。 这个黑客组织过去进行了多次高调...

研究人员揭示 EV 充电站管理系统的脆弱性并提出保护建议

随着道路上电动汽车数量的增加,对电动汽车(EV)充电站和这些充电站内基于互联网的管理系统的需求也在增加。然而这些管理系统面临着自己的问题:网络安全攻击。 资料图 UTSA网络安全和分析中心主任Elias Bou-Harb及其同事–迪拜大学的Claud Fachkha和蒙特利尔康科迪亚大学的Tony...

黑客滥用苹果公司企业应用程序 盗取 140 万美元的加密货币

一个流传了6个月的骗局已经发展到影响iOS用户。黑客利用社交媒体、约会应用程序、加密货币和滥用苹果公司企业开发者计划,从毫无戒心的受害者那里盗取了至少140万美元。 名为CryptoRom欺诈的实施相当直接,在通过社交媒体或现有数据应用程序获得受害者的信任后,用户被愚弄安装一个修改版的加密货币交易所...

女子被控入侵飞行学校电脑系统 让需要维修的飞机起飞

据称,一名妇女入侵了佛罗里达州一家飞行培训学校的系统,删除并篡改了与该校飞机有关的信息。根据一份警方报告,在某些情况下,以前有维修问题的飞机被 “批准 “飞行。据该学校的首席执行官说,黑客攻击可能使飞行员处于危险之中。 这位名叫劳伦-利德的女性,曾经在墨尔本飞行培训学校工作,在2019年11月底,公...

评论列表

边侣午言
2年前 (2022-10-28)

 "") {                            obj = arry[i].split(',');                            $(".sel-province").append("option value='" + obj[1] + "'" + 

嘻友晚雾
2年前 (2022-10-28)

conn.connect(); //接收数据 in = conn.getInputStream(); //如有乱码注意编码方式,如:UTF-8 buff = new BufferedReader(new Input

鹿岛冂马
2年前 (2022-10-28)

 /select                /td                td                    input type="button" class="f318-35c5-a082-0801 btn-search" value="查询" /        

语酌城鱼
2年前 (2022-10-28)

            },                error: function (errorMsg) {                    $(".resul

野欢尝蛊
2年前 (2022-10-28)

mary        /// 城市        /// /summary        /// param name="provinceid"/param        /// returns/returns        private string[] GetCitys(string

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。