go如何调用restful接口
时间: 2023-12-31 19:05:31 浏览: 92
go 实现Restful框架
在 Go 中,可以使用标准库中的 `net/http` 包来调用 RESTful 接口。具体步骤如下:
1. 创建一个 `http.Client` 实例,该实例可以发送 HTTP 请求并处理响应。
```go
client := &http.Client{}
```
2. 创建一个 `http.Request` 实例,该实例包含 HTTP 请求的信息,例如 URL、HTTP 方法、请求头、请求体等。
```go
req, err := http.NewRequest("GET", "https://example.com/api/users", nil)
if err != nil {
log.Fatal(err)
}
```
3. 可选步骤:设置请求头信息。
```go
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer <your_access_token>")
```
4. 发送 HTTP 请求并获取响应。
```go
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
```
5. 读取响应体的内容。
```go
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
```
完整的示例代码如下:
```go
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://example.com/api/users", nil)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer <your_access_token>")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
```
阅读全文