github.com/go-resty/resty/v2 发送http请求上传文件
时间: 2024-09-20 16:14:12 浏览: 70
https://github.com/PlayVoice/so-vits-svc 预训练文件
在Go语言中,通过`github.com/go-resty/resty/v2`库发送HTTP请求上传文件通常涉及到将文件数据转换为合适的二进制流,并设置适当的Content-Type头。下面是一个简化的示例,展示如何使用这个库来上传文件:
```go
package main
import (
"bytes"
"github.com/go-resty/resty/v2"
)
func uploadFile(url string, filePath string) error {
client := resty.New() // 创建Resty客户端
// 打开文件并读取内容
file, err := ioutil.ReadFile(filePath)
if err != nil {
return err
}
// 设置POST请求头,指定Content-Type为"multipart/form-data"用于文件上传
body := bytes.NewBuffer(file)
contentType := "multipart/form-data; boundary=your_boundary" // 替换为实际的边界值
req := client.R().
SetHeader("Content-Type", contentType).
Multipart(true).
Post(url)
// 发送文件上传请求
resp, err := req.Execute()
if err != nil {
return err
}
defer resp.Body.Close()
// 检查响应状态码,如果非200则处理错误
if resp.StatusCode() != 200 {
return fmt.Errorf("upload failed with status %d: %s", resp.StatusCode(), resp.Status())
}
return nil
}
func main() {
url := "https://example.com/api/upload" // 替换为你实际的API地址
filePath := "/path/to/your/file.txt" // 替换为你要上传的文件路径
err := uploadFile(url, filePath)
if err != nil {
fmt.Println(err)
}
}
阅读全文