Java 如何在新回调中访问请求多部分主体信息<;ResponseBody>;?

Java 如何在新回调中访问请求多部分主体信息<;ResponseBody>;?,java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,大家好,Android程序员们。我被这个问题困住了。我需要从回调方法中检索循环迭代的文件名或索引。我正在使用翻新2.0 我想我可以将信息作为表单字段传递到post中(即使服务器不需要),然后在onResponse()方法中的call.request.body()中检索它 如果我使用调试器,我可以看到数据。我看到了我表格的两部分。我想我可以在我的表单中添加另一部分来保存索引。然而,我不知道如何通过代码访问这个。有人知道最好的方法吗?我想确保在上次onResponse回调结束时已上载所有图像 最初,

大家好,Android程序员们。我被这个问题困住了。我需要从回调方法中检索循环迭代的文件名或索引。我正在使用翻新2.0

我想我可以将信息作为表单字段传递到post中(即使服务器不需要),然后在onResponse()方法中的call.request.body()中检索它

如果我使用调试器,我可以看到数据。我看到了我表格的两部分。我想我可以在我的表单中添加另一部分来保存索引。然而,我不知道如何通过代码访问这个。有人知道最好的方法吗?我想确保在上次onResponse回调结束时已上载所有图像

最初,我想使用call.execute.body()来实现这一点,因为我已经有了一个“请稍候”对话框 但这给了我一个例外,基本上是说我应该从asynctask内部调用该方法

请忽略我将请求转换为JSON对象的尝试

任何有帮助的想法,谢谢

for (File f : theImages) {
    RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"), f);
    MultipartBody.Part body = MultipartBody.Part.createFormData("file", "image.jpg", reqFile);
    RequestBody repId = RequestBody.create(MediaType.parse("text/plain"), String.valueOf(newExternalReportId));
    uploadCall = hazSnapApi.postImage(body, repId, 1L);
    uploadCall.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            ResponseBody rBody = response.body();
            RequestBody mRequest = call.request().body();
            try {
                String temp = call.request().toString();
                JSONObject bodyAsJson = new JSONObject(call.request().toString());
            } catch (JSONException e) {
                e.printStackTrace();
            }


        }
        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
            t.printStackTrace();

        }
    });
}
for(文件f:theImages){
RequestBody reqFile=RequestBody.create(MediaType.parse(“image/*”),f);
MultipartBody.Part body=MultipartBody.Part.createFormData(“file”、“image.jpg”、reqFile);
RequestBody repId=RequestBody.create(MediaType.parse(“text/plain”)、String.valueOf(newExternalReportId));
uploadCall=hazSnapApi.postImage(body,repId,1L);
uploadCall.enqueue(新的回调(){
@凌驾
公共void onResponse(调用、响应){
ResponseBody-rBody=response.body();
RequestBody mRequest=call.request().body();
试一试{
String temp=call.request().toString();
JSONObject bodyAsJson=新的JSONObject(call.request().toString());
}捕获(JSONException e){
e、 printStackTrace();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
t、 printStackTrace();
}
});
}

我最终创建了一个服务,创建了一个改装呼叫。这样我就可以调用.execute.body()。
这是因为服务不在主线程上运行。

我创建了一个服务,创建了一个改造调用。这样我就可以调用.execute.body()。 这是因为服务不在主线程上运行