http-server(API)
package main
import (
"fmt"
"net/http"
)
func HealthCheck(writer http.ResponseWriter, request *http.Request) {
str := "server ok"
//接收请求
fmt.Println(request.URL)
fmt.Println(request.Body)
fmt.Println(request.Method)//GET POST
//返回结果
writer.Write([]byte(str))
}
func main() {
http.HandleFunc("/hello", func(writer http.ResponseWriter, request *http.Request) {
writer.Write([]byte("hello world"))
})
http.HandleFunc("/healthCheck", HealthCheck)
http.ListenAndServe("0.0.0.0:8080", nil)
}
http-client
package main
import (
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"os"
)
func main() {
//rsp, err := http.Get("http://127.0.0.1:8080/healthCheck")
//if err != nil {
//
//}
//rs, err := ioutil.ReadAll(rsp.Body)
//if err != nil {
//
//}
//fmt.Println(string(rs))
//接受完请求要关闭
//rsp.Body.Close()
//组装请求
data := url.Values{}
urlObj, _ := url.ParseRequestURI("http://127.0.0.1:8080/healthCheck")
data.Set("A", "测试")
urlStr := data.Encode()
fmt.Println(urlStr)
//A=%E6%B5%8B%E8%AF%95
//中文会转化为编码
urlObj.RawQuery = urlStr
req, err := http.NewRequest("GET", urlObj.String(), nil)
if err != nil {
}
//添加请求头
req.Header.Add("","")
resp, err := http.DefaultClient.Do(req)
if err != nil {
}
rsp, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(rsp))
//接受完请求要关闭
resp.Body.Close()
//post请求
http.PostForm("url", url.Values{"id": {"11"}})
//上传文件
http.Post("url","image/jpeg",*io.Reader)
//json
data=`{"name":"test","age":10}`
resp,err:=http.Post("url","application/json",strings.NewReader(data))
if err != nil {
}
rsp, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(rsp))
resp.Body.Close()
}