Používam aplikáciu Loopj AsyncHttpClient pre Androida funguje to ako kúzlo. Teraz sa snažím nahrať tri malé obrázky na môj server a mám nejaké problémy. Je to veľmi divné, pretože funguje perfektne, ak odovzdám 2 obrázky, ale keď sa pokúsim pridať tretinu k tej istej žiadosti, odpoveď servera predstavuje chybu 3 pri odovzdávaní súborov:
UPLOAD_ERR_PARTIAL
Value: 3; The uploaded file was only partially uploaded.
Keď to urobím:
params.put("photo1", f1);
params.put("photo2", f2);
funguje to ... ale keď pridám tretinu:
params.put("photo1", f1);
params.put("photo2", f2);
params.put("photo3", f3);
server nedokáže spracovať požiadavku ... Overil som si súbory, zdá sa, že aplikácia na strane servera funguje dobre (pokúsil som sa odoslať údaje poštou a funguje to)
Viete, prečo AsyncHttpClient zlyhal pri odovzdávaní 3 súborov, ale úspešne sa odovzdal 2?
vopred
odpovede:
2 pre odpoveď č. 1Tento problém bol zavedený vo verzii 1.4.4 tejto knižnice. Nemal som čas kopať hlbšie, ale mám podozrenie na tento konkrétny záväzok: https://github.com/loopj/android-async-http/commit/9f73dc722fdf8b564bf1487eef395d0b7e4ae862 byť zodpovedný za tento problém.
Ako riešenie teraz používajte verziu 1.4.3. Malo by to fungovať dobre.
0 pre odpoveď č. 2
Po aktualizácii na 1.4.4 sa vyskytol podobný problém. Ak odovzdám 2 obrázky, server získa iba 1 obrázok (ak 3, získa 2). Po prehľadaní a testovaní viem, že server, môj kód a 1.4.3 sú v poriadku.
Dnes to vyskúšam:
params.put("photo1", new FileInputStream(f1));
params.put("photo2", new FileInputStream(f2));
params.put("photo3", new FileInputStream(f3));
Funguje to.