首页 > 其他分享 >调用API获取天气数据

调用API获取天气数据

时间:2023-10-06 12:45:25浏览次数:34  
标签:function 调用 请求 Token 获取 JSON API 文档

在学习SpringMVC过程中,我了解到Restful API的调用只需要请求符合规范就能很轻松的实现功能,可以很好地引起我们的学习兴趣,这里我也自己尝试使用了AJAX,jQuery来向API发送请求,并接收JSON数据。

一、找到API提供商

这里我使用的是https://www.apispace.com/,提供的各类API非常齐全,文档格式也简单明了,这里我就用最简单的GET类型接口为例分享一下我的尝试。

该网站的各个API都有200次的免费使用次数,非常适合新手练习。
image

二、阅读API文档

文档中包含了对请求头,参数的规定,只要按照文档中要求的格式发送请求就能得到想要的数据
image

比如这个API就可以按照城市ID或经纬度来查询天气。

但是我们并不清楚对应的城市ID,这一点也包含在API文档中,只要查询即可。

image

比如这个表格中就有成都和成都下辖各区县的信息
image

三、发送请求

那么明确了请求格式之后我们就要发送请求了

以下是示例代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>天气查询</title>
    <script src="../js/jquery.js"></script>
</head>

<body>
    <fieldset>
        <legend>天气情况</legend>
        <input type="button" id="search" value="查询天气"/>
    </fieldset>
    <span id="content"></span>
    <script>
        $(function () {////绑定onload事件(页面加载完成后调用)
            //绑定注册按钮点击事件 
            $("#search").click(function () {
                var data = {

                }
                $.ajax({
                    "url": "https://eolink.o.apispace.com/456456/weather/v001/now?areacode=101210409",  //url地址
                    "method": "GET",                                                                    //请求类型
                    "headers": {                                                                        //请求头
                        "X-APISpace-Token": "个人Token",                         //个人Token
                        "Authorization-Type": "apikey"                                                  //验证方式
                    },
                    "data": data,
                    "crossDomain": true
                })
                    .done(function (response) {                                                         //成功回调函数
                        var content = $("#content")                                                     //获取显示控件
                        content.append(JSON.stringify(response))                                        //JSON结果转成字符串,添加至显示控件
                    })
                    .fail(function (jqXHR) { }                                                          //失败回调函数
                    )

            })

        })
    </script>
</body>

</html>

其中个人Token在你注册后可以在个人空间中查看。

四、展示

image

这里我只是简单的将JSON简单转换为字符串显示,如果想要更精细的显示,可以自己对获取到的数据进行解析。

五、总结

只要是符合REST风格的API都可以简单地进行请求,并获取相应的数据。我们在开发中常用的验证码,物流信息查询,人脸识别,身份证验证等等功能都可以通过调用API进行实现,非常方便快捷。感谢Roy Fielding(罗伊·托马斯·菲尔丁)博士提出的REST架构风格,返璞归真,回归简单的请求- 响应本源。

注:REST架构风格在Roy Fielding 博士的2000年毕业论文中被首次提出
Roy Fielding 博士是

  • HTTP协议的主要设计者
  • Apache Web Server的作者
  • Apache软件基金会的联合创始人

标签:function,调用,请求,Token,获取,JSON,API,文档
From: https://www.cnblogs.com/tobieance/p/17744438.html

相关文章

  • 力扣-1646-获取生成数组中的最大值
    给你一个整数n。按下述规则生成一个长度为n+1的数组nums:nums[0]=0nums[1]=1当2<=2*i<=n时,nums[2*i]=nums[i]当2<=2*i+1<=n时,nums[2*i+1]=nums[i]+nums[i+1]返回生成数组nums中的最大值。 示例1:输入:n=7输出:3解释:根据规则:......
  • Linux 嵌入式根文件系统文件调用流程
    原文:https://blog.csdn.net/KingRing_/article/details/121589073Linux嵌入式根文件系统文件调用流程当我们将根文件系统挂载起来后,加载busybox中的init程序,创建init进程,init进程在运行过程中会读取/etc/inittab文件,在inittab文件中,会读取解析/etc/init.d/rcS文件,然后执行/etc/i......
  • 【python自动化】七月PytestAutoApi开源框架学习笔记(二)
    执行流程注:请先阅读作者的README.md文档https://gitee.com/yu_xiao_qi/pytest-auto-api2/blob/master/README.md本节内容目录如下:文章目录执行流程目录结构参数配置入口文件-run.pypytest.initest_case初始化数据缓存解析yaml测试数据测试用例执行conftest.py用例demo分析加载yaml......
  • stepci 开源api 自动测试框架
    stepci是基于nodejs开发的,开源api自动测试框架包含的特性语言无关 可以基于yaml,json,js定义支持多种框架 rest,graphl,grpc,trpc,soap自托管 可以集成到ci/cd中,同时可以自己部署与行可集成 可以很好的与其他工具集成说明stepci目前也支持负载测试(预览状态),同时还支持f......
  • Roslyn Scripting APIs
    Net编译器平台---RoslynScriptingAPIs 合集-小工具(8) 1.Net编译器平台---Roslyn07-072.Net编译器平台---RoslynScriptingAPIs07-083.UI自动化---微软UIAutomation07-094.UI自动化---UIAutomation基础详解07-105.工具---IL指令集解释07-216.基......
  • chisel安装和使用+联合体union的tagged属性+sv读取文件和显示+sv获取系统时间+vcs编译
    chisel安装和使用sbt:scalabuildtool,是scala的默认构建工具,配置文件是build.sbt。mill:一个新的java/scala构建工具,运行较快,与sbt可以共存,配置文件是build.sc。chisel的安装可以参考这篇文章。安装过程务必联网,而没有联网情况下的安装,按照其它的说明,如移动缓存文件等,并无法正常......
  • socket API
    在Linux下,套接字编程(SocketProgramming)涉及多个系统调用和库函数来创建、配置和管理套接字。以下是一些常用的套接字相关的API:socket():创建套接字,返回一个套接字描述符。bind():将套接字与特定的IP地址和端口号关联。listen():将套接字设置为监听状态,用于接受连接请求。......
  • 使用 expo-location 获取不到位置信息 Location.getCurrentPositionAsync() 结果无打
    问题描述:reactnative中使用expo-location获取位置信息时,按照官方文档执行案例,获取不到位置结果。Location.requestForegroundPermissionsAsync()执行后可以获取授权状态,但是执行到Location.getCurrentPositionAsync()时不会打印结果。解决方法:给Location.getCurrentPos......
  • 10.2 调试事件获取DLL装载
    理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用LOAD_DLL_DEBUG_EVENT这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知事件,利用该方法并配合磁盘路径获取函数则可很容易的实现......
  • 10.2 调试事件获取DLL装载
    理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用LOAD_DLL_DEBUG_EVENT这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知事件,利用该方法并配合磁盘路径获取函数则可很容易的实......