在apifox中案例应用如下
fun post(fileList: MutableList<File>) {
val client = OkHttpClient.Builder()
.connectTimeout(60,TimeUnit.SECONDS)
.readTimeout(60,TimeUnit.SECONDS)
.build()
// 创建 MultipartBody.Builder
val requestBodyBuilder = MultipartBody.Builder().setType(MultipartBody.FORM)
// 添加文件参数
for (file in fileList) {
Log.d("file123", file.toString())
requestBodyBuilder.addFormDataPart("file", file.name, file.asRequestBody("application/pdf".toMediaType()))
}
val requestBody = requestBodyBuilder.build()
val request = Request.Builder()
.url(baseUrl)
.post(requestBody)
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
Log.d("file123",e.message.toString())
}
override fun onResponse(call: Call, response: Response) {
val res = response.body?.string()
Log.d("file123",res.toString())
}
})
}
以上就是我的请求方法,但是遇到了一些问题
- 当OkHttpClient设置为15秒左右,在Android studio并没有到达15s,却打印出timeout的问题(也就是请求失败)
- 当OkHttpClient设置为60秒左右,在Android studio并没有到达15s,却打印出Connection Reset的问题(也就是请求失败)
在apifox是运行成功的,但是android是请求失败的,后台日志显示一部分成功,但是莫名中断了。(提示:当文件为一个的时候是成功的)