go 自定义http.Client – 动态修改请求Body

在对接Alexa Smart Home时,有的请求Payload中需要传入Access Token,但是这个Token是由OAuth2 Client管理的,封装Payload时并不知道Access Token。

所以使用自定义RoundTripper,在请求前取出Header里的token,修改body,实现动态修改payload。

go中可以使用http.DefaultClient进行http请求,也可以自己创建http.Client,传入自定义Transport可以实现对request的处理。

http.Client

http.RoundTripper

我们先写一个server,打印出访问的payload信息。

如果使用默认的DefaultClient,只会打印出我们传入的payload。

结果:

使用自定义Transport

使用自定义Client

最终结果:

我们可以使用http.DefaultClient完成大部分http请求,但是如果我们需要实现一些自定义逻辑时,可以传入http.Client中对应自定义的部分,实现自定义逻辑。

本文中通过修改Transport,读取请求Header,并修改请求Body,动态修改请求Payload。

Original: https://www.cnblogs.com/xpunch/p/15615198.html
Author: xpunch
Title: go 自定义http.Client – 动态修改请求Body

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516508/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球