java - 为什么我的后期改造请求不起作用?
问题描述
我有一个应该上传以下参数的应用程序
在这里我有我的代码
@POST("task")
Call<ResponsetTask> API_Task(@Header("Authorization") String key, @Body RequestBody body);
[ 3
和
private void Analizar() {
File file=new File(path);
RequestBody requestBody =RequestBody.create(MediaType.parse("image/jpg"),file);
MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM);
builder.addFormDataPart("message", Constantes.MESSAGE);
builder.addFormDataPart("filecomment", Constantes.FILECOMMENT);
builder.addFormDataPart("api_token", Constantes.api_token);
builder.addFormDataPart("user_id", Integer.toString(Constantes.id));
builder.addFormDataPart("image","image.jpg",requestBody);
MultipartBody body = builder.build();
Call<ResponsetTask>call=conexion2.API_Task(Constantes.AUTH,body);
call.enqueue(new Callback<ResponsetTask>() {
@Override
public void onResponse(Call<ResponsetTask> call, Response<ResponsetTask> response) {
if(response.isSuccessful()){
Constantes.api_task=response.body().getTaskId();
}
}
@Override
public void onFailure(Call<ResponsetTask> call, Throwable t) {
}
});
}
问题是该帖子不起作用并且没有告诉我为什么我的代码中有一个断点 BodyRequest 是构建的,但是当涉及到调用时它只是跳到最后,也就是说 onResponse () 和 onFailure () 跳过代码似乎工作,应用程序没有挂起或给出异常
我感谢任何帮助的朋友
解决方案
这个问题是你试图通过多部分传递数据,这是一个简单的修复添加这个库
implementation "com.squareup.retrofit2:converter-scalars:$retrofit_version"
和这个转换器工厂
.addConverterFactory(ScalarsConverterFactory.create())
在您的改造构建器中。示例代码如下
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
推荐阅读
- reactjs - 如何从django api访问forgin键值
- java - jOOQ fetchGroups 不会为一对多关系返回空集合
- python - 当 Tesseract 路径已设置为本地路径时,如何修复 TesseractNotFoundError?
- powershell - Powershell 在每个服务器的公共共享路径上创建日志
- mongodb - 猫鼬中的“无法识别的表达式`$regexMatch`”
- javascript - 在 react-select 中提供 inputValue 道具后无法从列表中选择值
- rust - 如何在 Rust 中调用具有可变自身的结构上的方法
- python - 带女服务员的 Python Dash 服务器
- excel - 交叉引用 2 个不同的列,然后将值计数放在另一个表中
- excel - 如何在电源查询(Excel 或 Power BI)中获取最近 4 周的日期