Go使用post方法将json数据传给一个url(后端接口)
最近做的一个项目是采用前后端分离模式写前端,后端是fabric区块链,提供接口,需要使用post方法进行访问。如上一章注册用户,就是需要把用户名、账户信息转换成json形式
使用post方法传给后端区块链的url.话不多说直接看代码分析。
/*post1注册用户*/ func signup(url string, i *CreateUserInput) (status int) { data, err := json.Marshal(i) if err != nil { log.Fatal(err) } req, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) if err != nil { log.Fatal(err) } req.Header.Set("Content-Type", "application/json") var client = http.DefaultClient response, err := client.Do(req) if err != nil { log.Fatal(err) } defer response.Body.Close() BodyData, err := ioutil.ReadAll(response.Body) if err != nil { log.Fatal(err) } var info = BaseInfo{} err = json.Unmarshal(BodyData, &info) if err != nil { log.Fatal(err) } switch info.Code { case 200: fmt.Printf("%s 注册成功\n", info.Msg) case 500: fmt.Printf("注册失败,%s", info.Msg) return } status = info.Code return }
这个函数,是我自己写的,按照网上其他post提交方法写的。
参数:url string, i *CreateUserInput;url是需要post的URL;i是结构体;
函数中data, err := json.Marshal(i)将结构体转成json形式,
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))需要提供参数post
重点的是这段代码:
var info = BaseInfo{} err = json.Unmarshal(BodyData, &info) if err != nil { log.Fatal(err) } switch info.Code { case 200: fmt.Printf("%s 注册成功\n", info.Msg) case 500: fmt.Printf("注册失败,%s", info.Msg) return } status = info.Code
获取后端区块链给的POST返回值,即那边接口的响应是否成功(这个后端区块链会给一个类似状态码的结构体形式)
err = json.Unmarshal(BodyData, &info)将接收到的json转成结构体。
如果状态码为200,则POST提交数据成功,否则则输出错误信息。
参考文章:
https://developer.aliyun.com/article/1023715
分类:
Go gin实战前端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!