【发布时间】:2016-08-29 03:44:18
【问题描述】:
你好 Android 程序员。我被困在这个问题上。我需要从回调方法中检索循环迭代的文件名或索引。我正在使用 Retrofit 2.0。
我想我可以将信息作为表单字段传递到帖子中(即使服务器不需要它),然后在 onResponse() 方法内的 call.request.body() 中检索它。
如果我使用调试器,我可以看到数据。我看到了表格的两个部分。我想我可以在我的表单中添加另一部分来保存索引。但是,我不知道如何通过代码访问它。有谁知道这样做的最佳方法?我想确保在最后一次 onResponse 回调结束时已上传所有图像。
最初我想使用call.execute.body() 执行此操作,因为我已经有一个“请稍候对话框”
但这给了我一个异常,基本上是说我应该从异步任务内部调用该方法。
请忽略我将请求转换为 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();
}
});
}
【问题讨论】:
标签: java android retrofit retrofit2