Multipart 접근 방식을 사용하여 내 앱에서 서버로 이미지 파일을 업로드하려고합니다. 요청을 보내 자마자 "반복 불가능한 요청 예외"라는 문제가 생겼습니다. 나는이 접근법에 익숙하지 않고 이것을 다루는 방법을 모른다.다중 부분에서 반복되지 않는 요청 예외 android
여기 내 코드입니다 : -
File imageFile = new File("/mnt/sdcard/link.jpg");
Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] image = stream.toByteArray();
String img_str = Base64.encodeToString(image, 0);
InputStream imageStream;
JSONObject objResult;
boolean bSucess = true;
// Base 64 image string was stored with image object ,
//String imageBase64 = image.getImageString();
// This base64 to byte , One can directly read bytes from file from Disk
String imageDataBytes = img_str.substring(img_str.indexOf(",")+1);
HttpClient client = null;
HttpPost post = null;
HttpResponse response = null;
HttpEntity httpEntity = null;
imageStream = new ByteArrayInputStream(Base64.decode(imageDataBytes.getBytes(), Base64.DEFAULT));
try{
//Forming Json Object
JSONObject jsonImageMetdata = new JSONObject();
JSONObject objMultipart = new JSONObject();
try {
objMultipart.put("status", 1+"");
objMultipart.put("type", "Photo");
objMultipart.put("filename", "menu.jpg");
objMultipart.put("filetype", "image/jpeg");
objMultipart.put("user_id", "1");
objMultipart.put("auth_id", "1");
objMultipart.put("userfile", Base64.decode(imageDataBytes.getBytes(), Base64.DEFAULT));
jsonImageMetdata.put("MultipartImageMetadata", objMultipart);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// converting json data to string
String strImageMetadata = jsonImageMetdata.toString();
client = new DefaultHttpClient();
post = new HttpPost("http://stage.phonethics.in/inorbitapp/place_api/menu_list");
post.setHeader("X-API-KEY", "d41d8cd98f00b204e9800998ecf8427e");
MultipartEntityBuilder entityBuilder = null;
try{
entityBuilder = MultipartEntityBuilder.create();
}
catch(Exception a){
Log.d("name",a.getMessage());
throw a;
}
entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
// adding text
entityBuilder.addTextBody("dummyParameter","Dummy text",ContentType.TEXT_PLAIN);
// adding Image
if(imageStream != null){
entityBuilder.addBinaryBody("file", imageStream,ContentType.create("image/jpeg"),"imagename.jpg");
}
// sending formed json data in form of text
entityBuilder.addTextBody("descriptions", strImageMetadata, ContentType.APPLICATION_JSON) ;
HttpEntity entity = entityBuilder.build();
post.setEntity(entity);
response = client.execute(post);
httpEntity = response.getEntity();
result = EntityUtils.toString(httpEntity);
누군가가 나를이 밖으로 정렬하는 데 도움이 될 수 있습니다. 어떤 도움을받을 수 있습니다. 감사합니다. .
이 답변은 바로 돈입니다! 나는'InputStreamBody' 구현을'FileBody'로 대체했고 문제는 사라졌습니다. –