Android 在安卓系统中使用改型后,图像不会上载到服务器
我正在开发一个应用程序,我需要在服务器上上传图像。我无法使用改型在服务器上上传图像。我不知道在另一个应用程序中使用相同的代码上传图像有什么问题。下面是我的代码Android 在安卓系统中使用改型后,图像不会上载到服务器,android,retrofit2,multipart,Android,Retrofit2,Multipart,我正在开发一个应用程序,我需要在服务器上上传图像。我无法使用改型在服务器上上传图像。我不知道在另一个应用程序中使用相同的代码上传图像有什么问题。下面是我的代码 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == REQUEST_GALLERY_CODE && resultCode == Activity.RESULT
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_GALLERY_CODE && resultCode == Activity.RESULT_OK){
uri = data.getData();
if(EasyPermissions.hasPermissions(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
String filePath = getRealPathFromURIPath(uri, ProfileActivity.this);
File file = new File(filePath);
iv_user_profile_image.setImageURI(uri);
Log.d(TAG, "Filename " + file.getName());
RequestBody mFile = RequestBody.create(MediaType.parse("image/*"), file);
MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file.getName(), mFile);
RequestBody filename = RequestBody.create(MediaType.parse("text/plain"), file.getName());
RequestBody uid = RequestBody.create(MediaType.parse("text/plain"), loginStatusModal.getUser_id());
WebClient uploadImage = ServiceGenerators.createService(WebClient.class);
Call<UploadObject> fileUpload = uploadImage.uploadFile(mAuthorizationHeader,fileToUpload/*,uid*/);
String abc = fileUpload.request().url().toString();
fileUpload.enqueue(new Callback<UploadObject>() {
@Override
public void onResponse(Call<UploadObject> call, Response<UploadObject> response) {
Toast.makeText(ProfileActivity.this, "Response " + response.raw().message(), Toast.LENGTH_LONG).show();
Toast.makeText(ProfileActivity.this, "Success " + response.body().getStatus(), Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<UploadObject> call, Throwable t) {
Log.d(TAG, "Error " + t.getMessage());
}
});
}else{
EasyPermissions.requestPermissions(this, getString(R.string.read_file), READ_REQUEST_CODE, Manifest.permission.READ_EXTERNAL_STORAGE);
}
}
}
这个消息是来的
下面是我的界面
@Multipart
@POST("/api/uploadimage")
Call<UploadObject> uploadFile(@Header("Authorization") String authorizationHeader,
@Part MultipartBody.Part file);
@Multipart
@POST(“/api/uploadimage”)
调用uploadFile(@Header(“Authorization”)字符串authorizationHeader,
@Part MultipartBody.Part文件);
请告诉我这个代码到底出了什么问题
欢迎提供任何帮助。您生成的JSON格式不正确。获取输出并使用服务进行测试,如查看问题所在 您的改装呼叫可能如下所示:
@Multipart
@POST("/api/uploadimage")
Call<UploadObject> uploadFile(@Header("Authorization") String
authorizationHeader, RequestBody file);
RequestBody typedFile = RequestBody.create(MediaType.parse("image/*"), file);
uploadImage.uploadFile(mAuthorizationHeader, typedFile);
@Multipart
@POST(“/api/uploadimage”)
调用uploadFile(@Header(“Authorization”)字符串
authorizationHeader,RequestBody文件);
RequestBody typedFile=RequestBody.create(MediaType.parse(“image/*”),文件);
uploadImage.uploadFile(mAuthorizationHeader,typedFile);
生成的JSON格式不正确。获取输出并使用服务进行测试,如查看问题所在
您的改装呼叫可能如下所示:
@Multipart
@POST("/api/uploadimage")
Call<UploadObject> uploadFile(@Header("Authorization") String
authorizationHeader, RequestBody file);
RequestBody typedFile = RequestBody.create(MediaType.parse("image/*"), file);
uploadImage.uploadFile(mAuthorizationHeader, typedFile);
@Multipart
@POST(“/api/uploadimage”)
调用uploadFile(@Header(“Authorization”)字符串
authorizationHeader,RequestBody文件);
RequestBody typedFile=RequestBody.create(MediaType.parse(“image/*”),文件);
uploadImage.uploadFile(mAuthorizationHeader,typedFile);
问题在于Gson需要一个对象,但却收到一个字符串,这是因为JSON的格式可能是错误的。JSON必须以
{
或者,如果您使用的是GSON,您可以设置:
.setLenient()
用于接受格式错误的JSON
编码不错问题是Gson需要一个对象,但正在接收一个字符串,这是因为JSON的格式可能是错误的。JSON必须以
{
或者,如果您使用的是GSON,您可以设置:
.setLenient()
用于接受格式错误的JSON
编码不错.setLenient()也被使用,json是有效的,但仍然会出现此错误。请显示使用,您的json响应,我们可以告诉您有关格式的更多信息。{“状态”:“成功”,“代码”:2001,“图像路径”:“}json必须以“,你有一个;单独地这也是一个错误。您可以始终使用此网站验证/检查json响应。setLenient()也被使用,json是有效的,但仍然存在此错误。请显示使用,您的json响应,我们可以告诉您有关格式的更多信息。{“状态”:“成功”,“代码”:2001,“图像路径”:“”}json必须以“,你有一个;单独地这也是一个错误。您可以随时使用此网站验证/检查json响应