go调用第三方API通用做法
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
// 假设我们有一个API的请求结构体
type ApiRequest struct {
Field1 string `json:"field1"`
Field2 int `json:"field2"`
}
// 假设我们有一个API的响应结构体
type ApiResponse struct {
Code int `json:"code"`
Message string `json:"message"`
}
func main() {
// 创建API请求对象
request := ApiRequest{
Field1: "value1",
Field2: 123,
}
// 序列化请求对象为JSON格式
requestBody, err := json.Marshal(request)
if err != nil {
panic(err)
}
// 发起POST请求到第三方API
resp, err := http.Post("https://api.example.com/endpoint", "application/json", bytes.NewBuffer(requestBody))
if err != nil {
panic(err)
}
defer resp.Body.Close()
// 读取响应体
responseBody, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
// 反序列化响应体到响应对象
var response ApiResponse
err = json.Unmarshal(responseBody, &response)
if err != nil {
panic(err)
}
// 输出API响应结果
fmt.Printf("API Response: %+v\n", response)
}
这段代码展示了如何在Go中创建一个HTTP POST请求,发送JSON格式的数据到第三方API,并处理返回的JSON响应。代码中包含了错误处理,确保在发生任何错误时程序不会崩溃。
评论已关闭