Hello其他Android程序员。我坚持这个问题。我需要从回调方法中检索循环迭代的文件名或索引。我正在使用Retrofit 2.0。
我想我可以将信息作为表单字段传递到帖子中(即使服务器不需要它),然后在onResponse()内的call.request.body()中检索它方法
如果我使用调试器,我可以看到数据。我看到了表格的两个部分。我想我可以在我的表单中添加另一部分来保存索引。但是,我不知道如何通过代码访问它。有谁知道最好的方法吗?我想确保所有图片都是在最后一次onResponse回调结束时上传的。
最初我想使用call.execute.body()
执行此操作,因为我已经有了#34;请等待对话框"
但是这给了我一个Exception,主要是说我应该从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();
}
});
}
答案 0 :(得分:0)
我最终创建了一个创建改装调用的服务。这样我就可以call.execute.body()
。
这是因为Service不在主线程上运行。