Java 如何在新回调中访问请求多部分主体信息<;ResponseBody>;?
大家好,Android程序员们。我被这个问题困住了。我需要从回调方法中检索循环迭代的文件名或索引。我正在使用翻新2.0 我想我可以将信息作为表单字段传递到post中(即使服务器不需要),然后在onResponse()方法中的call.request.body()中检索它 如果我使用调试器,我可以看到数据。我看到了我表格的两部分。我想我可以在我的表单中添加另一部分来保存索引。然而,我不知道如何通过代码访问这个。有人知道最好的方法吗?我想确保在上次onResponse回调结束时已上载所有图像 最初,我想使用call.execute.body()来实现这一点,因为我已经有了一个“请稍候”对话框 但这给了我一个例外,基本上是说我应该从asynctask内部调用该方法 请忽略我将请求转换为JSON对象的尝试 任何有帮助的想法,谢谢Java 如何在新回调中访问请求多部分主体信息<;ResponseBody>;?,java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,大家好,Android程序员们。我被这个问题困住了。我需要从回调方法中检索循环迭代的文件名或索引。我正在使用翻新2.0 我想我可以将信息作为表单字段传递到post中(即使服务器不需要),然后在onResponse()方法中的call.request.body()中检索它 如果我使用调试器,我可以看到数据。我看到了我表格的两部分。我想我可以在我的表单中添加另一部分来保存索引。然而,我不知道如何通过代码访问这个。有人知道最好的方法吗?我想确保在上次onResponse回调结束时已上载所有图像 最初,
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()。 这是因为服务不在主线程上运行