最近工作中涉及到了使用Go来发送restful请求,因为Go默认的http只提供GO
&PATCH
两种请求,其余类型的请求需要开发人员通过http.Request
来实现,本文提供PATCH
操作带json
数据的一个Demo。
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "http://127.0.0.1:5000/api/version/resources/resource_item"
fmt.Println("URL:>", url)
// 使用转义反引号完成json转换
item := "testKey"
updateParams := `{"testKey":"` + item + `"}`
var jsonStr = []byte(updateParams)
req, _ := http.NewRequest(http.MethodPatch, url, bytes.NewBuffer(jsonStr))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
fmt.Println("response Status:", resp.Status)
fmt.Println("response Headers:", resp.Header)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println("response Body:", string(body))
}
其他类型请求同上,只需要将动作改为对应的操作即可。