Я хочу отправить Multipart
файл с устройства Android на службу отдыха, которая была разработана весной.
Вот мой код Android ..
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
try {
String path = getPath(filePath);
//Creating a multi part request
new MultipartUploadRequest(this,"http://localhost:8080/samplerestfullservice/classtest/upload1")
.addFileToUpload(path, "image")//Adding file
.setNotificationConfig(new UploadNotificationConfig())
.setMaxRetries(2)
.startUpload(); //Starting the upload
} catch (Exception exc) {
Toast.makeText(this, exc.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
public String getPath(Uri uri) {
String[] projection={MediaStore.Images.Media.DATA};
Cursor cursor=getContentResolver().query(uri,projection,null,null,null);
if(cursor == null){
return null;
}
int columnIndex= cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String s=cursor.getString(columnIndex);
cursor.close();
return s;
}
А мой сервисный код
@RequestMapping(value = "/upload1", method = RequestMethod.POST, headers = "Content-Type= multipart/form-data" )
@ResponseBody
public void fileUpload(@RequestParam MultipartFile file){
System.out.print("Success");
// rest of the code
}
И я объявил интернет-разрешение в manifest.xml, но клиентский запрос не доходит до службы. И я не знаю, есть ли проблемы с совместимостью.
Пожалуйста, любой может дать предложение.
Спасибо.