不为别的,只为做一个连自己都羡慕的人

go请求第三方接口,使用go原生的方法去请求

import (
   "io/ioutil"
   "log"
   "net/http"
)

get请求:

resp, err := http.Get("http://localhost:6002/baiduTrans")
   if err != nil {
      log.Fatalln(err)
   }
//We Read the response body on the line below.
   body, err := ioutil.ReadAll(resp.Body)
   if err != nil {
      log.Fatalln(err)
   }
//Convert the body to type string
   sb := string(body)
   log.Printf(sb)

这种请求方式的缺点是使用query传参,如果参数中包含了空格等等其他字符,他不会自动像我们浏览器的url地址一样,自动将特殊字符转义为能够识别的,导致接口无法请求成功。

post请求:

import (
   "bytes"
   "encoding/json"
   "io/ioutil"
   "log"
   "net/http"
)

func main() {
//Encode the data
   postBody, _ := json.Marshal(map[string]string{
      "name":  "Toby",
      "email": "Toby@example.com",
   })
   responseBody := bytes.NewBuffer(postBody)
//Leverage Go's HTTP Post function to make request
   resp, err := http.Post("https://postman-echo.com/post", "application/json", responseBody)
//Handle Error
   if err != nil {
      log.Fatalf("An Error Occured %v", err)
   }
   defer resp.Body.Close()
//Read the response body
   body, err := ioutil.ReadAll(resp.Body)
   if err != nil {
      log.Fatalln(err)
   }
   sb := string(body)
   log.Printf(sb)
}

 

 

 

 

 

 

 

 

 

来自于:https://blog.logrocket.com/making-http-requests-in-go/

posted @ 2021-09-02 10:58  升级打怪  阅读(776)  评论(0编辑  收藏  举报