2017-10-20 22 views
0

これは簡単な質問かもしれませんが、私のアプリでは、サーバーにデータをアップロードする必要があります。いくつかのユーザーイメージ(3または4)と他のユーザーデータ名前、パス、年齢など)。Volley MultipartRequest VS StringRequest with params

私はVolleyを使用しており、回答HEREからはMultipartRequestを使用しています。

通常StringRequestに私はそのように行うことができます方法getParamsを持っている場合しかし、私は違いについて確認していない、またはMultipartRequestを使用する利点:

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

いいえ、マルチパートリクエストはベース64エンコーディングを使用せず、イメージバイトを直接サーバーに転送します。次の例を確認してください:[link] https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594 – FerDensetsu

関連する問題