2017-10-20 11 views
0

글쎄, 그건 간단한 질문 일지 모르지만, 내 응용 프로그램에서 일부 데이터를 서버에 업로드해야한다. 다른 사용자 데이터와 함께 일부 사용자 이미지 (3 또는 4)가 될 것이다. 이름, 패스, 나이 등).Volley MultipartRequest VS StringRequest with params

나는 Volley를 사용할 것이고, 대답은 HERE이고, 나는 MultipartRequest을 사용하고있다.

그러나, 나는 차이, 또는 사용의 장점에 대해 확실하지 오전 MultipartRequest 보통 StringRequest에 내가 그렇게 할 수있는 방법 getParams이있는 경우 : 나는 두 가지 방법을 구현 한

override fun getParams(): Map<String, String> { 
     val params = HashMap<String, String>() 
     params.put("image1", encodedImage1Base64) 
     params.put("image2", encodedImage2Base64) 
     params.put("image3", encodedImage3Base64) 
     params.put("image4", encodedImage4Base64) 
     params.put("user_name", userName) 
     params.put("user_pass", userPass) 
     params.put("user_age", userAge) 
     params.put("user_email", userEmail) 
     // and any other user data needed 
     return params 

답변

0

을 Volley로 이미지를 업로드하는 경우 MultipartRequest는 Base64로 인코딩 된 문자열보다 효과적입니다. Base64 인코딩은 33 %로 전송 된 데이터를 증가시킵니다. 일반적으로 거대한 파일을 업로드하려는 경우 멀티 파읷은 바이너리 데이터를 업로드 할 때 일반적으로 사용됩니다.

+0

괜찮 았지 만 사용하는 방법에 상관없이 이미지를 업로드하려면 'Base64'인코딩을 사용하지 않아도 되나요?, 인코딩하지 않고 이미지를 직접 업로드하려면 어떻게해야합니까? – codeKiller

+0

아니요, 다중 요청은 base64 인코딩을 사용하지 않고 이미지 바이트를 서버로 직접 전송합니다. 다음 예를 확인하십시오. [link] https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594 – FerDensetsu