Retrofit大体积Multipart请求体被截断问题求助
Retrofit大体积Multipart请求体被截断问题求助
各位大佬好,我在Android项目里用Retrofit发送大体积.wav音频文件的Multipart请求时,碰到了一个棘手的问题:当音频文件大小接近700KB左右,请求会直接被截断,服务器收到的是不完整的请求,完全无法正常处理。
我抓了请求日志,发现异常点如下:
正常的Multipart请求在音频二进制数据之后,应该还有下一个boundary分隔符以及后续的其他请求参数,但实际日志里到二进制数据的某一段就直接终止了,后续内容完全没有发送出去:
Content-Type: multipart/form-data; boundary=0e9a827b-f32b-4b4d-a2df-288267f4b1b5 Content-Length: 1050458 --0e9a827b-f32b-4b4d-a2df-288267f4b1b5 Content-Disposition: form-data; name="klinudalId" Content-Transfer-Encoding: binary Content-Type: text/plain; charset=UTF-8 Content-Length: 75519130 --0e9a827b-f32b-4b4d-a2df-288267f4b1b5 Content-Disposition: form-data; name="AudioFile"; filename="record20250617175529240.wav" Content-Type: audio/wav Content-Length: 1049644 RIFF$??WAVEfmt ??????????�>??????}????????data??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????... (后续二进制数据省略)
日志到这里就直接结束了,本该出现的下一个boundary和后续参数完全没影,服务器那边也反馈收到的请求不完整。
我目前创建Multipart请求体的Kotlin代码如下:
val requestFile = file.asRequestBody("audio/wav".toMediaTypeOrNull()) val multipartBody = MultipartBody.Part.createFormData( name = "AudioFile", filename = file.name, body = requestFile )
我已经确认过本地的音频文件是完整无损坏的,也跟后端同事核对过服务器的接收配置,暂时没发现问题。有没有大佬遇到过类似的情况?或者能给我一些排查的方向?
内容来源于stack exchange
相关产品推荐
相关产品推荐

