android - 使用 POST 进行改造会失败,但仍会上传文件
问题描述
我正在尝试使用 refrofit 和 php 上传文件,它可以工作,但它会 onFailure 不知道为什么...如果我打印堆栈跟踪它说.. com.google.gson.JsonIOException:JSON 文档没有完全消耗.
有了这个我上传文件......
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), archivo);
MultipartBody.Part multipartBody = MultipartBody.Part.createFormData("fichero",archivo.getName(),requestFile);
call.enqueue(new Callback<Usuario>() {
@Override
public void onResponse(Call<Usuario> call, Response<Usuario> response) {
Toast.makeText(PrincipalActivity.this, response.body().getResponse(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<Usuario> call, Throwable t) {
Toast.makeText(PrincipalActivity.this, "Error de Conexión", Toast.LENGTH_SHORT).show();
t.printStackTrace();
int lala=0;
}
});
public interface MetodosApi {
@Multipart
@POST("subir.php")
Call<Usuario> subirArchivo(@Part MultipartBody.Part file);
}
public static Retrofit obtieneRetrofit() {
if(retrofit==null) {
Gson gson = new GsonBuilder()
.setLenient()
.create();
OkHttpClient okHttpClient = new OkHttpClient();
retrofit= new Retrofit.Builder().baseUrl(url).client(okHttpClient).addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
不知道问题出在哪里...
解决方案
推荐阅读
- python - 如何使用python获取客户端在请求标头中插入的新参数?
- kubernetes - 使用“kubectl patch”更新部署标签在 v1.18 中不起作用
- javascript - 删除复制对象内的对象的键也会删除现有对象
- java - 为什么我得到一个数组越界异常/没有密码的控制台输出?
- php - 在 Codeigniter 项目中使用 coinbase/coinbase php 库时出现 Guzzlehttp 错误
- r - 控制R中ggplot2中多个geom_line的颜色
- c# - 在 Unity 中将游戏内数据导出到 csv
- c# - Xamarin Android 模拟器失败。视觉工作室 2019
- python-3.x - 与不同的日期字段相比,如何选择所有最近的日期?
- sql - PostgresSQL:使用 FILTER 函数根据时间间隔过滤行