使用okhttp3上传图片或文件时,可能会出现java.io.EOFException: \n not found: size=0 content=… 或 unexpected end of stream on okhttp3.Address@9e287adb 异常,这很可能是上传时没有设置文件长度的缘故。
如果出现了类似错误,应该是没有重写RequestBody中的contentLength方法,该方法默认返回-1,会被认为上传长度是0,即size=0。
因此,只需重写contentLength方法,返回正确的长度,即可解决该问题。