文章目录
【Go 语言编程笔记(一)】
Go Post/Get请求&&数据处理
前言
我们知道在web service中,通常会用到post/get 请求,但是,基本上会通过Postman进行相应的请求。
现在有业务需求是,我们直接在内部进行请求进行了。如何操作?以及获得到的psot请求数据如何处理?
一、net/http
Get请求【不废话,直接代码】
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
response, err := http.Get("http://www.baidu.com")
if err != nil {
// handle error
}
//程序在使用完回复后必须关闭回复的主体。
defer response.Body.Close()
body, _ := ioutil.ReadAll(response.Body)
fmt.Println(string(body))
}
Post请求【不废话,直接代码】
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
//body := "{\"action\":20}"
body := "{\"BPM\":20}"
res, err := http.Post("http://localhost:8080/", "application/json;charset=utf-8", bytes.NewBuffer([]byte(body)))
if err != nil {
fmt.Println("Fatal error ", err.Error())
}
defer res.Body.Close()
content, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Fatal error ", err.Error())
}
fmt.Println(string(content))
}
其中 body 中的内容其实就是你在postman中需要输入的数据:
特别要注意其中的转义字符“"。
二、Post得到的数据如何处理??
1.string将ASCII转成string
代码如下(示例):
content, err := ioutil.ReadAll(res.Body)
fmt.Println(string(content))
2.json与struct数据绑定
代码如下(示例):
type people struct {
name string `json:"name"`
age int `json:"age"`
id int `json:"id"`
}
## json.Unmarshal 将string装成json 代码如下(示例):
var someOne student
if err := json.Unmarshal([]byte(msg), &someOne); err == nil {
fmt.Println(someOne)
fmt.Println(someOne.people)
} else {
fmt.Println(err)
}
总结
以上就是关于如何将Post数据转成json以及与struct绑定,简单而且高效。