- 分离 Request 的配置态与执行态,修复二次 Do、raw 模式网络配置失效和 body 来源互斥问题 - 新增 starnet trace 抽象,补齐 DNS/连接/TLS/重试事件,并优化动态 transport 缓存与代理解析路径 - 收紧非法代理为 fail-fast,多目标目标回退仅限幂等请求,修复 Host/TLS/SNI 等语义边界 - 补充防御性拷贝、专项回归测试、本地代理/TLS 用例与 README 行为说明
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
package starnet
|
|
|
|
import "net/http"
|
|
|
|
// SetBasicAuth 设置 Basic 认证
|
|
func (r *Request) SetBasicAuth(username, password string) *Request {
|
|
return r.applyMutation(mutateBasicAuth(username, password))
|
|
}
|
|
|
|
// SetContentLength 设置 Content-Length
|
|
func (r *Request) SetContentLength(length int64) *Request {
|
|
return r.applyMutation(mutateContentLength(length))
|
|
}
|
|
|
|
// SetAutoCalcContentLength 设置是否自动计算 Content-Length
|
|
// 警告:启用后会将整个 body 读入内存
|
|
func (r *Request) SetAutoCalcContentLength(auto bool) *Request {
|
|
return r.applyMutation(mutateAutoCalcContentLength(auto))
|
|
}
|
|
|
|
// SetTransport 设置自定义 Transport
|
|
func (r *Request) SetTransport(transport *http.Transport) *Request {
|
|
return r.applyMutation(mutateTransport(transport))
|
|
}
|
|
|
|
// SetUploadProgress 设置文件上传进度回调
|
|
func (r *Request) SetUploadProgress(fn UploadProgressFunc) *Request {
|
|
return r.applyMutation(mutateUploadProgress(fn))
|
|
}
|
|
|
|
// SetMaxRespBodyBytes 设置响应体最大读取字节数(<=0 表示不限制)
|
|
func (r *Request) SetMaxRespBodyBytes(maxBytes int64) *Request {
|
|
return r.applyMutation(mutateMaxRespBodyBytes(maxBytes))
|
|
}
|