本例请求了天气api接口

对接流程
  1. 注册一个账号, 对接免费实况天气接口
  2. 阅读接口文档 http://tianqiapi.com/index/doc?version=day
  3. 请求接口
  4. 解析json
开发流程
  1. 创建一个 json.go 文件
  2. 需要引入的包
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
  1. 定义 Weather Struct

     go结构体内的变量首字母必须大写
type Weather struct {
Nums int
Cityid string
City string
Date string
Week string
Update_time string
Wea string
Wea_img string
Tem string
Tem_day string
Tem_night string
Win string
Win_speed string
Win_meter string
Air string
Pressure string
Humidity string
}
  1. http.Get 请求接口
  2. json.Unmarshal 解析json
  3. gofmt -w json.go 格式化代码
完整代码
package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
) type Weather struct {
Nums int
Cityid string
City string
Date string
Week string
Update_time string
Wea string
Wea_img string
Tem string
Tem_day string
Tem_night string
Win string
Win_speed string
Win_meter string
Air string
Pressure string
Humidity string
} func main() {
resp, err := http.Get("http://v1.yiketianqi.com/free/day?appid=85841439&appsecret=EKCDLT4I&unescape=1&city=")
if err != nil {
fmt.Println("请求失败:", err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("读取响应失败:", err)
}
fmt.Println(string(body))
jsonData := []byte(string(body))
var wea Weather
err2 := json.Unmarshal(jsonData, &wea)
if err2 != nil {
fmt.Println("error:", err2)
return
}
fmt.Println("城市名称:", wea.City)
fmt.Println("城市编号:", wea.Cityid)
fmt.Println("当前日期:", wea.Date, wea.Week)
fmt.Println("更新时间:", wea.Update_time)
fmt.Println("今日天气:", wea.Tem, "°", wea.Wea, wea.Tem_night, "°~", wea.Tem_day, "°")
fmt.Println("风向风力:", wea.Win, wea.Win_speed, wea.Win_meter)
fmt.Println("空气质量:", wea.Air)
fmt.Println("当前气压:", wea.Pressure)
fmt.Println("当前湿度:", wea.Humidity)
fmt.Println("数据来源:", "天气API(http://tianqiapi.com)")
}

go语言请求http接口示例 并解析json的更多相关文章

  1. 记一次sql server 2005访问http接口,并解析json的过程

    记一次sql server 2005访问http接口,并解析json的过程  JSON解析官方网站:https://www.red-gate.com/simple-talk/sql/t-sql-pro ...

  2. C语言cJSON库的使用,解析json数据格式

    C语言cJSON库的使用,解析json数据格式 摘自:https://www.cnblogs.com/piaoyang/p/9274925.html 对于c语言来说是没有字典这样的结构的,所以对于解析 ...

  3. Kettle通过Http post请求webservice接口以及结果解析处理

    kettle中有两种方式请求webservice服务,一个是Web服务查询,但是这个有缺陷,无法处理复杂的需求,遇到这种情况就需要用Http post来处理了. 网上也有很多关于Http post请求 ...

  4. 新浪短链接API接口示例

    <?php /** * URL地址长短切换,由sina新浪短链接API生成 * User: chenqt * Date: 2016/8/23 * Time: 18:45 */ class Url ...

  5. C++解析JSON之JsonCPP

    一.JSON简介 JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读.编写.解析. JSON由两种基本结构构成: )"名称/值" ...

  6. php中创建和调用webservice接口示例

    php中创建和调用webservice接口示例   这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservi ...

  7. webservice接口示例(spring+xfire+webservice)

      webservice接口示例(spring+xfire+webservice) CreateTime--2018年4月2日17:36:07 Author:Marydon 一.准备工作 1.1 ja ...

  8. HTTPS请求HTTP接口被浏览器阻塞,python实现websocket客户端,websocket服务器,跨域问题,dwebsocket,https,拦截,服务端

    HTTPS请求HTTP接口被浏览器阻塞,python实现websocket客户端,websocket服务器,跨域问题,dwebsocket,https,拦截,服务端 发表时间:2020-03-05 1 ...

  9. webapi+Task并行请求不同接口实例

    标题的名称定义不知道是否准确,不过我想表达的意思就是使用Task特性来同时请求多个不同的接口,然后合并数据:我想这种场景的开发对于对接过其他公司接口的人不会陌生,本人也是列属于之内,更多的是使用最原始 ...

  10. 阶段一:通过网络请求,获得并解析JSON数据(天气应用)

    “阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...

随机推荐

  1. 将查询集SQL-存为物理 OR 临时表

    最近的BI项目, 就是会涉及大量的 sql, 后台处理也全是 sql 来拼接成一张物理宽表, 然后前台也是用 sql 来做各种图形骚操作. 尤其是后台处理部分, 大量的sql, 有点尴尬的事情是, s ...

  2. Flutter跨平台发送系统通知和状态栏通知技术浅析

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  3. 🚀 Python f-string 全攻略:从入门到大师,让你的编码效率翻倍!

    目录 什么是 f-string 基础用法 变量插值 表达式嵌入 调用函数 数字格式化 千位分隔符 控制小数位数 百分比转换 科学计数法 文本对齐与填充 填充对齐 自定义填充字符 日期时间格式化 进阶技 ...

  4. 如何在AutoCAD Electrical中修改项目描述中的行号

    默认情况下,项目描述对话框中都会以行号+数字的形式显示,如下图所示: 1.打开记事本程序,按照以下格式收入文字: LINE1=设计 LINE2=制图 LINE3=校对 LINE4=审核 LINE5=工 ...

  5. Spring Boot 集成Mybatis和Druid快速入门

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架,它摒除了大部分的JDBC代码.手工设置参数和结果集重获,只使用简单的XML 和注解来配置和映射基本数据类型.Map 接口和POJ ...

  6. github无法访问问题解决方法

    问题描述: 直接使用gtihub.com网址访问github浏览器无响应. 解决办法: 1.登录https://github.com.ipaddress.com/去查询github.com.githu ...

  7. HTTP请求使用http、socks代理demo,包含有认证和无认证

    package cn.daenx.myadmin.email.utils; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpU ...

  8. java-mybatis-手动分页工具类

    使用 List<PhcpSaBankAl> saBankAlList = phcpSaBankAlDao.getBankInfoList(loginUserType.getCityCode ...

  9. 宝塔面板部署vue项目(MyAuthWeb)

    前言 在前文中,部署好后端了,就可以开始部署前端了,本文使用常见的宝塔面板演示 宝塔面板部署vue项目一般有两种方式,一种是build成纯静态,一种是直接部署node项目 本文以TianYe负责维护的 ...

  10. 一文搞懂K8s中的RBAC认证授权

    概述 官方文档: https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/authorization/ https://kubern ...