当前位置:首页 >  开发者 >  Go使用post方法将json数据传给一个url(后端接口)

Go使用post方法将json数据传给一个url(后端接口)

最近做的一个项目是采用前后端分离模式写前端,后端是fabric区块链,提供接口,需要使用post方法进行访问。如上一章注册用户,就是需要把用户名、账户信息转换成json形式使用post方法传给后端区块链的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

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,
如果涉及侵权请联系站长邮箱:support@yingtwo.com 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:none

最近更新

超级女英雄哪个厉害
超级女英雄哪个厉害

漫威中有数不清的超级英雄,而在我们讨论最强大的...

台电平板屏幕多少钱
台电平板屏幕多少钱

尊敬的台电用户:您好,X80HD的外屏是120...

嘉实多和昆仑哪个好
嘉实多和昆仑哪个好

你好!嘉实多机油是业界最好的,比昆仑机油贵很多...

68.C++中的const
68.C++中的const

编写程序过程中,我们有时不希望改变某个变量的值...

封神榜哪个版本游戏
封神榜哪个版本游戏

PC上的荡神志、刀剑封魔录、封神榜之英雄无敌P...

硬盘怎么清洁
硬盘怎么清洁

给笔记本电脑硬盘清理灰尘的方法如下:1、用螺丝...

410m和7670哪个好
410m和7670哪个好

首先三款笔记本的处理器都是i52450m,内存...

手机2k17乔丹怎么获得
手机2k17乔丹怎么获得

NBA2k17选择乔丹先创建MC人物,打三局大...

多态、抽象类、接口练习:愤怒的小鸟
多态、抽象类、接口练习:愤怒的小鸟

需求说明:模拟实现愤怒的小鸟,定义鸟叫的接口,...

使用taro+canvas实现微信小程序的图片分享功能
使用taro+canvas实现微信小程序的图片分享功能

业务场景二轮充电业务中,用户充电完成后在订单详...