zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    QT 双缓冲
    ubuntu 安装SVN客户端
    高并发linux内核网络参数调优
    c aes 解密
    qt 字符类型转换
    c++ ado 操作类
    Qt中将QString转换为char *或者相反
    c++ aes 加密 解密
    [转载]python编码转换遇到的非法字符的解决方法
    [转载] python异常如何全面捕获
  • 原文地址:https://www.cnblogs.com/lxz123/p/15217807.html
Copyright © 2011-2022 走看看