2017-10-20 2 views
0

Nun, das könnte eine einfache Frage sein, aber in meiner App muss ich einige Daten auf einen Server hochladen, es wird einige Benutzer Bilder (3 oder 4) zusammen mit einigen anderen Benutzerdaten (Name, Ausweis, Alter usw.).Volley MultiRequest VS StringRequest mit Parametern

Dafür werde ich Volley verwenden, und aus der Antwort HERE habe ich gelesen über die Verwendung eines MultipartRequest.

Allerdings bin ich über den Unterschied nicht sicher, oder den Vorteil der Verwendung eines MultipartRequest wenn in den üblichen StringRequest Ich habe die Methode getParams wo ich so tun könnte:

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 

Antwort

0

ich beiden Methoden implementiert habe zum Hochladen von Bildern mit Volley, und MultipartRequest hat besser funktioniert als Base64-codierte Zeichenfolge. Die Base64-Codierung erhöht die übertragenen Daten um 33%. Multipart ist normalerweise die beste Methode beim Hochladen von Binärdaten, besonders wenn Sie große Dateien hochladen wollen.

+0

ok das ist sehr interessant, aber müssen Sie nicht 'Base64' Kodierung verwenden, um Bilder hochzuladen, egal welche Methode Sie verwenden ??, wie laden Sie das Bild direkt ohne Kodierung hoch? – codeKiller

+0

Nein, Multipart-Anfrage verwendet keine base64-Codierung, es überträgt die Bildbytes direkt zum Server. Überprüfen Sie dieses Beispiel: [link] https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594 – FerDensetsu

Verwandte Themen