我是新的改装,我想上传一张带有不同参数的图片,比如name,dob,mobile。我不知道我错在哪里,请引导我。我遵循这个链接
这是我的代码
接口
@Multipart
@POST("signup")
Call<ResponseBody> getSignup(@Part("name") RequestBody name, @Part("email") RequestBody email, @Part("dob") RequestBody dob, @Part("phone") RequestBody phone, @Part("IMEI") RequestBody IMEI, @Part MultipartBody.Part file);
上传代码
// create RequestBody instance from file
RequestBody requestFile =
RequestBody.create(MediaType.parse("multipart/form-data"), file);
// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part body =
MultipartBody.Part.createFormData("image", file.getName(), requestFile);
RequestBody name =
RequestBody.create(
MediaType.parse("multipart/form-data"), et_name.getText().toString());
RequestBody email =
RequestBody.create(
MediaType.parse("multipart/form-data"), et_email.getText().toString());
RequestBody dob =
RequestBody.create(
MediaType.parse("multipart/form-data"), et_dob.getText().toString());
RequestBody mobile =
RequestBody.create(
MediaType.parse("multipart/form-data"), et_mobile.getText().toString());
RequestBody imei =
RequestBody.create(
MediaType.parse("multipart/form-data"), IMEI);
Call<ResponseBody> responseBodyCall = apiInterface.getSignup(name, email, dob, mobile, imei, body);
responseBodyCall.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
String response_two = response.body().toString();
Log.i(TAG, "onResponse: " + response_two);
// startActivity(new Intent(this, OTPActivity.class));
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.e("Upload error:", t.getMessage());
}
});
你需要添加相同类型的图像也看到这里它是如何工作的,这也是为多个图像。
@Multipart
@POST(ApiConstants.EDIT_REQUEST)
Observable<CommonModel> editRequest(@Part("requestid") RequestBody requestid, @PartMap() Map<String, RequestBody> mapFileAndName);
RequestBody requestid1 = RequestBody.create(MediaType.parse("text/plain"), requestid);
Map<String, RequestBody> files = new HashMap<>();
for (int i = 0; i < mList.size(); i++) {
String key = "package_image[" + String.valueOf(i) + "]";
files.put("" + key + "\"; filename=\"" + key + ".png", getRequestFile(new File(mList.get(i).getImagePath())));
}
private RequestBody getRequestFile(File file) {
RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), file);
return fbody;
}
有关更多详细信息,请访问此处
这是我的后多部分的例子
@Multipart
@POST("/api/register?platform=android")
Call<Register> register(@Part("photo\"; filename=\"photoName.png\" ") RequestBody photo,
@Part("name") RequestBody name,
@Part("phoneNumber") RequestBody phoneNumber,
@Part("password") RequestBody password,carColor,
@Query("language") String language);
改造2.0以后试试这个答案
@Multipart
@POST("/service/users/add_user")
Call<AddUsersModel> addUser(@Part("user_name") RequestBody userName, @Part("user_last_name") RequestBody lastName, @Part("user_password") RequestBody password,
@Part("user_email") RequestBody email, @Part("user_mobile") RequestBody mobile, @Part MultipartBody.Part user_profile);
MulitpartBody的文件路径。部分转换
MultipartBody.Part profileImageBody = null;
RequestBody reqFile = null;
try {
String filePath = CameraIntentUtil.getFIlePath();
Log.d(TAG, "createAccount: filePath:" + filePath);
if (filePath != null) {
File file = new File(filePath);
reqFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
// "user_profile" is my post request key
profileImageBody = MultipartBody.Part.createFormData("user_profile", file.getName(), reqFile);
}
} catch (Exception e) {
Log.e(TAG, "createAccount: ", e);
}
字符串到请求正文转换
public static RequestBody stringToRequestBody(String data) {
return RequestBody.create(MediaType.parse("multipart/form-data"), data);
}
很晚才回答……但我希望它至少对任何人都有帮助
我要哭了,因为我尝试了很多解决方案和话题,但都不起作用。 null 您需要发送一个多部分请求(enctype=“multipart/form-data”)。 所以,有人能请帮助我,为什么我有HTTP 400与上面的错误消息?我可以在代码中更改什么以使此调用工作?谢谢你
我有以下错误: 我为http请求设置了服务器,仍然得到错误:
我正在尝试上传图像与修改库。我就是这样上传的: 请求代码: 答复: 如果我是通过客户端浏览器(如postman或DHC)发布的,则请求与上面相同,并且我得到一个成功的XML响应。 请看我在邮递员客户端上尝试的截图。它是成功的。
如何使用RxJava和Kotlin中的改型创建api调用的泛型类? 我的JAVA实现是:: 首先添加Gradle依赖项:(更新到最新版本(如果可用)) //用于改装 实现“com.squareup.reverfit2:reverfit:2.3.0” 实现“com.squareup.reverfit2:converter-gson:2.3.0” //对于拦截器实现“com.squareup.okht
我在spring boot中编写了一个restful web服务来接收文件。 如何将文件从客户端java代码上传到web服务。而不是AJAX调用或HTML页面表单多部分请求? 下面的代码使用JSON对象调用web服务。像这样,我想在上面写的web服务中接收文件。
我正在尝试使用aws-java-sdk(1.11.230)编写一个实用程序。我可以使用PutObjectRequest编写SSE-KMS文件,如下所示: 但是在尝试以多部分方式上传它时,我找不到任何方法来指定SSE-KMS的加密配置。 任何人都可以建议一种方法来成功完成这一任务吗。如有任何建议,我们将不胜感激。 维卡什·帕里克