Go语言http请求

以下是net/http包中的几种进行http请求的方式:

1. http.Get和http.Post
import (
    "fmt"
    "io/ioutil"
    "net/http"
    "strings"
)

// http.Get
func httpGet() {
    resp, err := http.Get("http://www.baidu.com")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}

func httpPost() {
    resp, err := http.Post("http://www.baidu.com",
                           "application/x-www-form-urlencode",
                           strings.NewReader("name=abc")) // Content-Type post请求必须设置
    if err != nil {
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
2. http.Client
// http.Client
func httpDo() {
    client := &http.Client{}
    req, err := http.NewRequest("POST", 
                                "http://www.baidu.com", 
                                strings.NewReader("name=abc"))
    if err != nil {
        return
    }
    req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
    resp, err := client.Do(req)
    if err != nil {
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return
    }
    fmt.Println(string(body))
}
简单的http请求直接用http.Get和http.Post。需要操作headers,cookies或使用长连接和连接池,使用http.Client
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,227评论 25 708
  • 今天,写完作业我给姥姥打电话了,姥姥说家里面的玉米都熟啦!我见过玉米。但我没见过玉米怎么长出来的呢?!我好久都没见...
    段智耀阅读 230评论 0 0
  • 昨天立了flag说要背完一册单词。简直so easy。所以昨天也吃肉肉了。这是成果。 看到这个,我又知道今天该干什...
    半醒日常阅读 212评论 0 0
  • 第二章 再见之时 一整天,唐亦笙的脑子里抑制不住地想顾灏之要回国的事:他什么时候回来呢?他是因为什么回来的呢?会是...
    树屿木歌阅读 260评论 0 1