Tôi cố gắng tải dữ liệu lên máy chủ, dữ liệu của tôi chứa nhiều hình ảnh và JSON
lớn, trước khi tôi cố gắng gửi hình ảnh chuyển đổi thành chuỗi bằng cách sử dụng base64
và gửi dữ liệu và hình ảnh khác của tôi Tôi đã chuyển đổi trước đây với JSON
, nhưng tôi phải đối mặt với vấn đề OutOfMemory
ở đây, vì vậy tôi đọc một trong các giải pháp cho biết tôi phải thử sử dụng MultipartEntityBuilder
. Tôi vẫn còn khó hiểu và không hiểu cách thực hiện với MultiPartEntityBuilder
, Có ai có thể giúp tôi cách thực hiện với MultiPartEntityBuilder
không? đây là mã của tôi:Android: tải lên hình ảnh và JSON bằng cách sử dụng MultiPartEntityBuilder
try{
//membuat HttpClient
//membuat HttpPost
HttpPost httpPost= new HttpPost(url);
SONObject jsonObjectDP= new JSONObject();
System.out.println("file audio "+me.getModelDokumenPendukung().getAudio());
jsonObjectDP.put("audio_dp",MethodEncode.EncodeAudio(me.getModelDokumenPendukung().getAudio()));
jsonObjectDP.put("judul_audio",me.getModelDokumenPendukung().getJudul_audio());
jsonObjectDP.put("ket_audio",me.getModelDokumenPendukung().getKet_audio());
JSONArray ArrayFoto= new JSONArray();
//This loop For my multiple File Images
List<ModelFoto>ListFoto=me.getModelDokumenPendukung().getListFoto();
for (int i=0; i<ListFoto.size();i++) {
JSONObject jsonObject= new JSONObject();
jsonObject.put("foto", ListFoto.get(i).getFile_foto());
jsonObject.put("judul_foto", ListFoto.get(i).getJudul_foto());
jsonObject.put("ket_foto", ListFoto.get(i).getKet_foto());
ArrayFoto.put(jsonObject);
}
JSONObject JSONESPAJ=null;
JSONESPAJ = new JSONObject();
JSONObject JSONFINAL = new JSONObject();
JSONESPAJ.put("NO_PROPOSAL",me.getModelID().getProposal());
JSONESPAJ.put("GADGET_SPAJ_KEY",me.getModelID().getIDSPAJ());
JSONESPAJ.put("NO_VA",me.getModelID().getVa_number());
JSONESPAJ.put("Dokumen_Pendukung",jsonObjectDP);
JSONFINAL.put("ESPAJ", JSONESPAJ);
JSONFINAL.put("CLIENT", "ANDROID");
JSONFINAL.put("APP", "ESPAJ");
MultipartEntityBuilder multiPartEntityBuilder= MultipartEntityBuilder.create();
multiPartEntityBuilder.addPart("ESPAJ",JSONFINAL.toString());
httpPost.setEntity(multiPartEntityBuilder.build());
HttpResponse httpResponse = httpclient.execute(httpPost);
inputStream = httpResponse.getEntity().getContent();
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
}catch(OutOfMemoryError e){
Log.e("MEMORY EXCEPTION: ", e.toString());
} catch(ConnectTimeoutException e){
Log.e("Timeout Exception: ", e.toString());
} catch(SocketTimeoutException ste){
Log.e("Timeout Exception: ", ste.toString());
} catch (Exception e) {
// Log.d("InputStream", e.getLocalizedMessage());
}
private static String convertInputStreamToString(InputStream inputStream) throws IOException{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
String result = "";
while((line = bufferedReader.readLine()) != null)
// hasil=line;
result += line;
inputStream.close();
return result;
}
có ai có thể giúp tôi dạy và cho tôi biết cách gửi JSON và hình ảnh bằng MultiPartEntityBuilder không?
để JSON gửi nó như thế nào? – Menma
@NenMa json chỉ là một chuỗi. Vì vậy, hãy gửi nó như văn bản thuần túy thông thường. Tôi đã cập nhật câu trả lời. – eleven
vì vậy bạn có nghĩa là tôi phải chuyển đổi JSON của tôi thành String trước, phải không? – Menma