go requests的工作过程是什么
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容主要讲解"go requests的工作过程是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"go requests的工作过程是什么"吧!gith
千家信息网最后更新 2025年02月06日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安全错误
数据库的锁怎样保障安全
博兴瓷砖库存软件开发
数据库服务器不联网渗透测试
注意网络安全英语作文简短
金仓数据库初始化失败
数据库表包括什么和什么
阿里网络安全大会
长沙芙蓉区软件开发培训院校
fm2013球员数据库
网络技术带来的弊端
中正指纹仪数据库
济南直播软件开发收费多少
买外网服务器
网络安全法实施的通知
数据库分类记忆法
网络安全预警githun
发生网络安全技术违章事件
pdf 网络安全测试实践与思考
大型软件开发语言
长沙学软件开发哪个好
数据库系统三个抽象系统
Quest 数据库
青岛软件开发培训
theisle服务器介绍
服务器怎么给武器灵魂绑定
南昌市微视界网络技术有限公司
湖南党性体检软件开发公司
法学外文数据库
服务器 向外发包
数据库课程设计系统功能分析
网络安全发展趋势及研究热点