go post 请求 --chatGPT

问:postReq(url,headers,body), 一个post请求,url 为请求路径,headers为要添加的请求头部,body为 to_address类型为string+owner_address类型为string+amount类型为int组成的json字符串

gpt:

你可以使用 Go 语言的标准库 `net/http` 来执行 POST 请求,同时设置请求头部和请求体。以下是一个示例函数 `postReq`,它执行一个 POST 请求:

```go
package main

import (
    "bytes"
    "fmt"
    "net/http"
)

func postReq(url string, headers map[string]string, body string) (*http.Response, error) {
    // 创建请求体
    reqBody := []byte(body)

    // 创建请求
    req, err := http.NewRequest("POST", url, bytes.NewBuffer(reqBody))
    if err != nil {
        return nil, err
    }

    // 添加请求头部
    for key, value := range headers {
        req.Header.Set(key, value)
    }

    // 执行请求
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }

    return resp, nil
}

func main() {
    url := "https://example.com/api/endpoint"
    headers := map[string]string{
        "Content-Type": "application/json",
        "Authorization": "Bearer YourAccessToken",
    }

    // 构建请求体 JSON 字符串
    body := `{"to_address": "recipient_address", "owner_address": "your_address", "amount": 100}`

    resp, err := postReq(url, headers, body)
    if err != nil {
        fmt.Printf("发生错误:%v\n", err)
        return
    }
    defer resp.Body.Close()

    fmt.Printf("响应状态码:%d\n", resp.StatusCode)
}
```

在这个示例中,我们创建了一个 `postReq` 函数来执行 POST 请求。它接受请求的 URL、请求头部和请求体作为参数。你可以将这个函数用于你的项目中,传递正确的参数和请求体 JSON 字符串。

请替换示例中的 URL、请求头部和请求体内容为你实际的需求。此外,你可能需要处理响应体以及错误情况,具体取决于你的应用程序。

你可能感兴趣的:(chatgpt,go)