987f0236a9
构建上传工具 / build-tool (push) Successful in 1m16s
- 在 UploadDataToServer 函数中添加 context 参数支持 - 使用 http.NewRequest 替换 httpClient.Post 以更好地控制请求上下文 - 重构应用启动逻辑,在 StartUpload 中初始化上传器上下文 - 优化 StopUpload 方法中的上下文取消机制 - 移除上传过程中的 wg.Wait() 调用以改善并发性能
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: 200,
|
|
MaxIdleConnsPerHost: 200,
|
|
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
|
|
}
|