go requests的工作过程是什么
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本篇内容主要讲解"go requests的工作过程是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"go requests的工作过程是什么"吧!gith
千家信息网最后更新 2025年11月14日go requests的工作过程是什么
本篇内容主要讲解"go requests的工作过程是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"go requests的工作过程是什么"吧!
github.com/asmcos/requests
最开始尝试用map[string]string或map[string]interface{}接受数据,发现接受之后取复杂对象类型中的数据比较麻烦,就想到了先看接口返回数据的具体格式,构造下结构体去接收;
由于给的接口文档并没有将请求token和请求数据两个接口的正确和错误字段[类型给出],所以改结构体的字段类型多试了几遍、但是请求接口错误信息没法模拟,就根据写python时候的经验加了能记起来的Result参数;
请求接口正确和错误情况下包含的字段完全不同,但是这边都构造在了接受的结构体对象中,不知道这么处理正确么
package hrimport ( "gitee.com/RandolphCYG/akita/pkg/log" "github.com/asmcos/requests")// HrToken 获取token接口返回数据结构体type HrToken struct { // 正确时候 AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` Scope string `json:"scope"` TokenType string `json:"token_type"` // 错误时候 Code int `json:"code"` Error string `json:"error"` ErrorDescription string `json:"error_description"` Message string `json:"message"` Success bool `json:"success"`}// HrData HR数据接口返回数据结构体type HrData struct { Content []HrUser `json:"content"` Empty bool `json:"empty"` Number int `json:"number"` NumberOfElements int `json:"numberOfElements"` Size int `json:"size"` TotalElements int `json:"totalElements"` TotalPages int `json:"totalPages"` // 出错时候 Result string `json:"result"`}// HrUser 数据接口查询的用户信息结构体type HrUser struct { CompanyCode string `json:"company_code"` CompanyName string `json:"company_name"` Name string `json:"ename"` Department string `json:"org_all"` Eid string `json:"pernr"` Stat string `json:"stat2"` Mobile string `json:"usrid"` Mail string `json:"usrid_long"` Title string `json:"zmplans"`}// HrDataConn HR数据模型type HrDataConn struct { // 获取 token 的 URL UrlGetToken string `json:"url_get_token" gorm:"type:varchar(255);not null;comment:获取token的地址"` // 获取 数据 的URL UrlGetData string `json:"url_get_data" gorm:"type:varchar(255);not null;comment:获取数据的地址"`}// FetchToken 获取tokenfunc FetchToken(h *HrDataConn) (token HrToken) { req := requests.Requests() respFetchToken, err := req.Post(h.UrlGetToken) if err != nil { // 抛错 log.Log().Error("fetch token failed,err:%v\n", err) return } // 反序列化 err = respFetchToken.Json(&token) if err != nil { // 抛错 log.Log().Error("convert response to json failed,err:%v\n", err) return } if !token.Success { // 抛错 log.Log().Error(token.ErrorDescription) return } return}// FetchHrData 带着token去获取HR数据func FetchHrData(h *HrDataConn) (hrUsers []HrUser) { req := requests.Requests() hrToken := FetchToken(h) header := requests.Header{ "Authorization": hrToken.TokenType + " " + hrToken.AccessToken, "Content-Type": "application/json;charset=UTF-8", } // 发送请求 respFetchData, err := req.Post(h.UrlGetData, header) if err != nil { log.Log().Error("fetch hr data failed,err:%v\n", err) return } var hrdata HrData respFetchData.Json(&hrdata) // 返回数据是否有报错字段 if hrdata.Result != "" { log.Log().Error("fetch hr data failed,err%v\n", hrdata.Result) return } hrUsers = hrdata.Content return}到此,相信大家对"go requests的工作过程是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数据
接口
结构
字段
时候
错误
过程
工作
类型
信息
内容
地址
对象
数据结构
学习
查询
不同
复杂
实用
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全 网络文明手抄报
银行数据库表结构
工业互联网软件开发
服务器的生存方式
数据库mysql如何添加列
软件开发有关的书
服务器的全称
网络安全管理办法2020
移动软件开发专业难吗
手机mt4换服务器
湖北正规网络技术咨询报价
7代cpu 服务器主板
曙光服务器配置管理网
网安大队开展网络安全工作
2018科技互联网展会
怎么查电脑的服务器地址
软件开发 用户手册
燕尾服下载软件开发
鑫城软件开发有限公司
江苏dell服务器方案
医脉相承网络技术
重庆电话网络技术定制价格
网络技术的发展概括
打开草图大师会有服务器正在运行
网络安全终端安全o域b域m域
光遇服务器满人怎么进去
软件开发公司好做吗
成都创业软件开发
暗区突围服务器什么时候能好
湛江仓库管理软件开发