이미지 및 일부 매개 변수를 서버에 업로드하는 Android 애플리케이션을 개발 중입니다. 내 서비스 측면에서 우리는 @RequestParam File 및 @RequestParam getProjectsData를 getProjectsData의 메소드에서 매개 변수로 사용하여 데이터베이스에 저장된 모든 이미지 세부 사항을 포함합니다. 여기에 내 안드로이드 애플 리케이션에서 이미지를 업로드 오전 HTTP Status 400 - Required request part 'getProjectsData' is not present
라는 오류가 발생하고 있습니다. 나중에 내가 내 측면에서 여러 multipart 데이터를 보낼 필요가 있다는 것을 알고 있었다. 하나는 어떻게 여러 다중 요청을 이미지 업로드를 게시 말해 및 을 업로드 할 이미지 속성에 대한 또 다른이는나머지 api와 함께 서버에서 안드로이드에 여러 개의 멀티 파트 파일을 보내는 방법은 무엇입니까?
AsyncTask<String, Void, String> uploadImageDetails = new AsyncTask<String, Void, String>() {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... urls) {
pm_image_details_model pm_img_model = new pm_image_details_model();
pm_img_model.setLatitude(String.valueOf(pm_latitude));
pm_img_model.setLongitude(String.valueOf(pm_longitude));
String result = null;
org.apache.http.entity.mime.MultipartEntity reqEntity = new org.apache.http.entity.mime.MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
// reqEntity.addPart("getProjectsData", new StringBody(""));
bos = new ByteArrayOutputStream();
final Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
ByteArrayBody bab = new ByteArrayBody(data, "test.jpeg");
try {
reqEntity.addPart("file", bab);
reqEntity.addPart("getProjectsData",new StringBody(json));
content = getHttpPutContent(urls[0], reqEntity);
} catch (JSONException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("Result from server -->", s);
}
};
HTTP 클라이언트가
public static String getHttpPutContent(String url, org.apache.http.entity.mime.MultipartEntity multipartEntity) {
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost put = new HttpPost(url);
// put.setHeader("Content-Type", "multipart/form-data");
// Log.i(TAG, "Token=> " + token);
Log.i("-->", "Try to open=> " + url);
org.apache.http.entity.mime.MultipartEntity reqEntity = multipartEntity;
put.setEntity(reqEntity);
HttpResponse httpResponse = httpClient.execute(put);
int statusCode = httpResponse.getStatusLine().getStatusCode();
Log.i("-->", "Connection code: " + statusCode);
HttpEntity entity = httpResponse.getEntity();
String serverResponse = EntityUtils.toString(entity);
Log.i("-->", "Server response=> " + serverResponse);
if (!isStatusOk(statusCode))
return null;
return serverResponse;
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}