【问题标题】:Multipart request with retrofit 2.0 Android Taking too much time to request带有改造 2.0 Android 的多部分请求 请求时间过长
【发布时间】:2019-03-28 22:48:56
【问题描述】:

我尝试使用改造 2.0 发出多部分请求,以将图像上传到我的服务器。

现在我的图片有 RequestBody

RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), file);

然后我以这种方式从数据创建

imagenPerfil = MultipartBody.Part.createFormData("user[image]",file.getName(),requestFile);

我的改装界面

@Multipart
@Headers({"Accept: application/json","X-OS:android","X-Api-Version:1","X-FIREBASE-TOKEN:token"})
@POST("/update_user_details")
Call<UserDetailAddResponse> uploadMulFile(@Header("X-User-Token") String token_header, @Header("X-User-Email") String email,
                                          @PartMap Map<String,Map<String,Object>> object,
                                          @Part MultipartBody.Part image);

请求在服务器上花费太多时间,或者最终它停止或不在服务器上发送请求..我必须做什么 我会在另一个线程中使用它还是可以?

【问题讨论】:

  • 你忘了在你的问题中提问...
  • 您确定您的互联网按预期工作吗?
  • 是的,它工作正常..
  • 你的图片尺寸是多少?
  • 大约是 2545514 它是长数据类型 还有其他方法可以知道吗?通过这个链接我压缩我的图像stackoverflow.com/a/49557959/10279394

标签: java android json retrofit2


【解决方案1】:

您可以在改造设置中增加超时时间。

OkHttpClient okHttpClient = new OkHttpClient.Builder()  
    .connectTimeout(1, TimeUnit.MINUTES)
    .readTimeout(30, TimeUnit.SECONDS)
    .writeTimeout(15, TimeUnit.SECONDS)
    .build();

Retrofit.Builder builder = new Retrofit.Builder()  
    .baseUrl("http://10.0.2.2:3000/")
    .client(okHttpClient)
    .addConverterFactory(GsonConverterFactory.create());

也许对你有帮助!

更多:https://futurestud.io/tutorials/retrofit-2-customize-network-timeouts

【讨论】:

  • 抱歉@ILLIADEREVIANKO 回复晚了......名称”:“helo”,“图像”:“”,language_id”:1,“relation_id”:2 } }
  • @RahulChaudhary 我能帮你更多吗?
  • 谢谢@ILLIA DEREVIANKO,但问题解决了.....如果我卡在任何地方,我一定会问你:D
  • @ILLIADEREVIANKO,一个大图像的改造多部分请求怎么样,服务器处理它的大小,裸体检查和 s3 上传并用 url 字符串回复。您是否建议这些超时是最佳的?
  • @binrebin 当然没有。这是一种灵活的配置,您应该根据自己的要求进行调整
猜你喜欢
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 2016-02-08
  • 2014-09-29
  • 2016-07-28
相关资源
最近更新 更多