client.SetRetryCount与SetMultipartField共存问题
问题背景: 在使用SetMultipartField将文件流传给接口时使用了client.SetRetryCount进行失败重试。文件流没有做本地存储导致重试后内存中的文件流被重复读EOF,文件大小传输后为0。
问题解决:
用golang os包做本地存储,每次retry从本地读文件流。
// SetMultipartField method is to set custom data using io.Reader for multipart upload.
func (r *Request) SetMultipartField(param, fileName, contentType string, reader io.Reader) *Request {
r.isMultiPart = true
r.multipartFields = append(r.multipartFields, &MultipartField{
Param: param,
FileName: fileName,
ContentType: contentType,
Reader: reader,
})
return r
}