怎么用golang发送http请求
时间: 2023-03-11 10:16:17 浏览: 170
可以使用 Go 自带的 net/http 库来发送 HTTP 请求。
下面是一个简单的例子,展示了如何发送一个 GET 请求并打印响应的内容:
```
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("http://www.example.com")
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
在这个例子中,我们使用了 net/http 库中的 Get 函数来发送 GET 请求。Get 函数返回一个 http.Response 类型的响应和可能出现的错误。我们通过调用 resp.Body.Close 来关闭响应体,并使用 ioutil 库中的 ReadAll 函数来读取响应体中的内容。
如果要发送其他类型的 HTTP 请求,比如 POST、PUT 或 DELETE,可以使用 http 库中的其他函数,比如 Post、Put 和 Delete。这些函数的用法与 Get 类似,只是请求方法不同而已。
例如,下面的例子展示了如何发送一个 POST 请求:
```
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
data := []byte("hello world")
resp, err := http.Post("http://www.example.com", "text/plain", bytes.NewReader(data))
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string
阅读全文