配合AJAX天气预报的webService 之asp

下面是配合AJAX天气预报的webService之ASP的完整攻略:

1. 确认webService接口地址

首先,需要确定使用的天气预报webService接口地址。例如,我们使用的是中国天气网的API。在此基础上,可以根据实际需求自行寻找合适的接口。

2. 创建ASP页面

接着,创建一个名为“weather.asp”的ASP页面,用于提供与天气预报相关的函数。例如,我们可以实现以下两个函数:

2.1 获取当前城市天气

<%
' 获取指定城市ID的天气情况
Function GetCityWeather(cityID)
    Dim url, jsonStr, jsonObj
    url = "http://www.weather.com.cn/data/sk/" & cityID & ".html"
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open "GET", url, False
    xmlhttp.send
    jsonStr = xmlhttp.responseText
    Set jsonObj = json.parse(jsonStr)
    Set GetCityWeather = jsonObj("weatherinfo")
End Function
%>

其中,函数使用了MSXML2.ServerXMLHTTP对象发送HTTP请求,并使用json对象解析返回的JSON格式字符串。通过该函数,可以获取指定城市ID的天气情况。

2.2 获取城市ID

<%
' 获取指定城市名称所对应的城市ID
Function GetCityID(cityName)
    Dim url, jsonStr, jsonObj
    url = "http://toy1.weather.com.cn/search?cityname=" & Server.UrlEncode(cityName)
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open "GET", url, False
    xmlhttp.send
    jsonStr = xmlhttp.responseText
    Set jsonObj = json.parse(jsonStr)
    If jsonObj("i") > 0 Then
        Set GetCityID = Split(jsonObj("l")(0), "|")(1)
    Else
        Set GetCityID = ""
    End If
End Function
%>

该函数同样使用了MSXML2.ServerXMLHTTP对象发送HTTP请求,并使用json对象解析返回的JSON格式字符串。通过该函数,可以获取指定城市名称所对应的城市ID。

3. 嵌入javascript代码

在ASP页面中,嵌入javascript代码,实现与前端AJAX交互。例如,我们可以实现以下两个函数:

3.1 显示当前城市天气

function showCityWeather(cityName) {
    var cityID = <%=GetCityID(cityName)%>;
    if (cityID.length > 0) {
        var url = "weather.asp?action=getCityWeather&cityID=" + cityID;
        $.getJSON(url, function(data) {
            var weatherInfo = data.weatherinfo;
            var msg = "当前城市:" + weatherInfo.city + "<br>" +
                      "天气情况:" + weatherInfo.weather + "<br>" +
                      "当前温度:" + weatherInfo.temp + "℃<br>" +
                      "更新时间:" + weatherInfo.time;
            $("#weatherContent").html(msg);
        }).fail(function(jqXHR, textStatus, errorThrown) {
            $("#weatherContent").html(textStatus + ":" + errorThrown);
        });
    } else {
        $("#weatherContent").html("未查询到该城市的信息");
    }
}

在该函数中,首先使用GetCityID函数获取指定城市名称的城市ID,然后根据城市ID发起HTTP请求,获取该城市的天气信息,最终在前端显示相应的内容。

3.2 显示当前IP所在城市天气

function showIpWeather() {
    var url = "http://ip-api.com/json/?lang=zh-CN";
    $.getJSON(url, function(data) {
        var cityName = data.city;
        showCityWeather(cityName);
    }).fail(function(jqXHR, textStatus, errorThrown) {
        $("#weatherContent").html(textStatus + ":" + errorThrown);
    });
}

在该函数中,首先发起HTTP请求,获取当前IP地址所在的城市名称,然后调用showCityWeather函数,显示该城市的天气信息。

4. 处理HTTP请求

最后,需要在ASP页面中处理前端发送的HTTP请求,并返回相应的结果。例如,可以实现以下代码:

4.1 处理获取当前城市天气请求

<%
' 处理获取当前城市天气请求
If Request.QueryString("action") = "getCityWeather" Then
    Dim cityID
    cityID = Request.QueryString("cityID")
    Dim weatherInfo
    weatherInfo = GetCityWeather(cityID)
    Response.ContentType = "application/json"
    Response.Write json.stringify("{""weatherinfo"":" & json.stringify(weatherInfo) & "}")
    Response.End
End If
%>

在该代码中,首先判断前端发送的HTTP请求是否为获取当前城市天气,然后使用GetCityWeather函数获取相应的天气信息,最终将结果序列化为JSON格式字符串返回给前端。

4.2 处理获取IP所在城市天气请求

<%
' 处理获取IP所在城市天气请求
If Request.QueryString("action") = "getIpWeather" Then
    Dim url, jsonStr, jsonObj, cityName
    url = "http://ip-api.com/json/?lang=zh-CN"
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open "GET", url, False
    xmlhttp.send
    jsonStr = xmlhttp.responseText
    Set jsonObj = json.parse(jsonStr)
    cityname = jsonObj("city")
    Dim weatherInfo
    weatherInfo = GetCityWeather(GetCityID(cityName))
    Response.ContentType = "application/json"
    Response.Write json.stringify("{""weatherinfo"":" & json.stringify(weatherInfo) & "}")
    Response.End
End If
%>

在该代码中,首先判断前端发送的HTTP请求是否为获取IP所在城市天气,然后使用HTTP API获取当前IP所在的城市名称,并使用GetCityID和GetCityWeather函数获取相应的天气信息,最终将结果序列化为JSON格式字符串返回给前端。

这就是配合AJAX天气预报的webService之ASP的完整攻略,其中包括了获取当前城市天气和获取IP所在城市天气的示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:配合AJAX天气预报的webService 之asp - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 再谈javascript面向对象编程

    当谈到JavaScript编程时,面向对象编程(OOP)是必须理解的一个概念。下面是JavaScript中面向对象编程的完整攻略。 面向对象编程的概述 面向对象编程是一种编程范式,它将程序设计组织成一组对象,每个对象都可以接收数据、处理数据和向其他对象发送消息。JavaScript是基于原型的语言,OOP的核心概念是对象,对于Javascript而言,它在对…

    JavaScript 2023年6月10日
    00
  • JavaScript整除运算函数ceil和floor的区别分析

    下面我来为你讲解一下“JavaScript整除运算函数ceil和floor的区别分析”。 1. 序言 在 JavaScript 中,Math.ceil() 和 Math.floor() 都是用于实现上取整和下取整操作的函数。在实际开发过程中,这两个函数经常被用来计算数据的精度。但是这两个函数之间还是有一些微小的差异,接下来我们将会逐一解释它们之间的区别。 2…

    JavaScript 2023年6月11日
    00
  • js直接编辑当前cookie的脚本

    为了编辑当前页面的cookie,我们可以利用JavaScript和Document.cookie属性实现。下面是具体步骤: 获取当前cookie字符串 使用document.cookie获取当前页面的cookie字符串。 示例代码: console.log(document.cookie); // 输出当前页面的cookie字符串 编写修改cookie的函数…

    JavaScript 2023年6月11日
    00
  • JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)

    JavaScript字符串对象fromCharCode方法入门实例 简介 fromCharCode()是JavaScript中字符串对象的一个方法,用来将Unicode编码转换成实际字符串。 语法 String.fromCharCode(num1, num2, …, numN) 参数 num1 – 必选参数,当前要被转换的Unicode编码值 (必须在0…

    JavaScript 2023年5月19日
    00
  • IP查询系统的异步回调案例

    IP查询系统的异步回调案例可以分为以下几个步骤: 1.向第三方IP查询系统发出请求,获取IP信息。 2.解析获取到的IP信息,提取需要的数据。 3.对提取到的数据进行存储和处理。 4.将处理完成后的数据通过异步回调的方式返回给用户。 以下是详细的攻略: 第一步:请求IP信息 在代码中,这一步可以使用HTTP请求库向第三方IP查询系统发起GET请求,获取用户输…

    JavaScript 2023年5月28日
    00
  • 微信小程序实现计时器开始和结束功能

    微信小程序实现计时器开始和结束功能攻略 应用场景 计时器在我们日常生活活跃跑步、健身、制作食品等方面有着广泛的应用场景,在小程序中实现计时功能可以提升小程序的用户体验度。 实现思路 微信小程序提供了定时器API能力,我们只需要定义计时器的开始时间和结束时间,在每次执行时取当前时间和结束时间的差值,从而得到当前的计时器时间。我们可以通过wx.showModal…

    JavaScript 2023年6月11日
    00
  • 前端H5 Video常见使用场景简介

    前端H5 Video是指在网页上通过H5技术播放视频的方式。它相对于Flash视频等传统方式,具有兼容性好、体验优秀等优点,因此在网络视频和在线教育等领域得到广泛应用。下面将详细讲解前端H5 Video常见使用场景。 常见使用场景 1. 网络视频站点 网络视频站点是前端H5 Video最常见的使用场景。视频站点通过前端H5 Video技术,可以实现视频播放、…

    JavaScript 2023年6月11日
    00
  • WebStorm 2017.3最新汉化激活破解及安装教程(附汉化包+原版下载)

    WebStorm 2017.3最新汉化激活破解及安装教程 下载WebStorm 2017.3 首先,到官网下载WebStorm 2017.3,推荐下载Windows版本。下载后双击WebStorm-*.exe开始安装。 安装WebStorm 2017.3 按照提示进行安装,如果需要更改安装路径,可以点击“Custom”按钮进行自定义安装路径。 汉化WebSt…

    JavaScript 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部