f96f23360c
- 增加了运行时自动启动上传配置选项 - 实现了日志输出的滚动控制功能 - 优化了上传进度显示和状态同步机制 - 提升了HTTP客户端连接池配置至500 - 改进了文件上传完成后的清理逻辑 - 添加了上下文取消检查避免资源泄露 - 完善了上传开始时的日志信息输出
47 lines
850 B
Go
47 lines
850 B
Go
package api
|
|
|
|
import (
|
|
"context"
|
|
"dypid-client/internal/config"
|
|
"io"
|
|
"net/http"
|
|
"net/url"
|
|
"time"
|
|
)
|
|
|
|
var httpClient = &http.Client{
|
|
Transport: &http.Transport{
|
|
MaxIdleConns: 500,
|
|
MaxIdleConnsPerHost: 500,
|
|
IdleConnTimeout: 30 * time.Second,
|
|
},
|
|
Timeout: 30 * time.Second,
|
|
}
|
|
|
|
func UploadDataToServer(ctx context.Context, data string) error {
|
|
params := url.Values{}
|
|
params.Set("token", config.APPConfig.Token)
|
|
params.Set("data", data)
|
|
|
|
//http://127.0.0.1:8080/api/data?token=123456&data=123456
|
|
request, err := http.NewRequest(
|
|
"POST",
|
|
config.APPConfig.Url+"/api/data?"+params.Encode(),
|
|
nil,
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
request.WithContext(ctx)
|
|
|
|
resp, err := httpClient.Do(request)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp != nil {
|
|
_, _ = io.Copy(io.Discard, resp.Body)
|
|
resp.Body.Close()
|
|
}
|
|
return err
|
|
}
|