Go语言Web编程实现Get和Post请求发送与解析的方法详解

2020-01-28 12:40:05于丽

本文实例讲述了Go语言Web编程实现Get和Post请求发送与解析的方法。,具体如下:

这是一篇入门文章,通过一个简单的例子介绍Golang的Web编程主要用到的技术。

文章结构包括:

1. Client-Get 请求
2. Client-Post 请求
3. Server 处理 Get 和 Post 数据

在数据的封装中,我们部分采用了json,因而本文也涉及到Golang中json的编码和解码。

一、Client-Get
package main
import (
        "fmt"
        "net/url"
        "net/http"
        "io/ioutil"
        "log"
)
func main() {
        u, _ := url.Parse("http://localhost:9001/xiaoyue")
        q := u.Query()
        q.Set("username", "user")
        q.Set("password", "passwd")
        u.RawQuery = q.Encode()
        res, err := http.Get(u.String());
        if err != nil {
              log.Fatal(err) return
        }
        result, err := ioutil.ReadAll(res.Body)
        res.Body.Close()
        if err != nil {
              log.Fatal(err) return
        }
        fmt.Printf("%s", result)
}

二、Client-Post
package main
import (
        "fmt"
        "net/url"
        "net/http"
        "io/ioutil"
        "log"
        "bytes"
        "encoding/json"
)
type Server struct {
        ServerName string
        ServerIP   string
}
type Serverslice struct {
        Servers []Server
        ServersID  string
}
func main() {
        var s Serverslice
        var newServer Server;
        newServer.ServerName = "Guangzhou_VPN";