Mit InputStream mit MultipartEntityBuilder : apache Fehler
Ich bin mit MultipartEntityBuilder und ich wollen Bild senden auf dem server. Ich habe Bild-Uri. Bild lokal sein kann oder nicht, so dass ich den input stream und schicken Sie es auf diese Weise:
HttpClient httpclient = new DefaultHttpClient();
JSONObject result;
HttpPost httppost = new HttpPost("http://www.ezduki.ru/api/content/add/image/");
InputStream iStream = con.getContentResolver().openInputStream(imageUri);
MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addTextBody("token", code);
multipartEntity.addBinaryBody("file", iStream);
httppost.setEntity(multipartEntity.build());
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
result = new JSONObject(EntityUtils.toString(entity));
con, wo ist meine Haupttätigkeit Kontext (code läuft in AsyncTask).
Ich bin versucht, senden Sie eine lokale Datei und ich bekomme Fehler vom web-server im Ergebnis, hier ist die log vom server:
[Fri Dec 13 10:01:03 2013] [error] [client 93.157.241.232] (70014)Ende der Datei gefunden: mod_wsgi (pid=28449): Unable to get bucket brigade für die Anfrage.
[Fri Dec 13 15:01:03 2013] [error] FEHLER:django.Anfrage:Internal Server Error: /api/content/add/image/
[Fri Dec 13 15:01:03 2013] [error] Traceback (most recent call last):
[Fri Dec 13 15:01:03 2013] [error] File "/var/www/ezduki/venv/lib/python2.6/site-packages
.
.
.
packages/django/core/handlers/wsgi.py", line 92, in _read_limited
[Fri Dec 13 15:01:03 2013] [error] Ergebnis = selbst.stream.Lesen(Größe)
[Fri Dec 13 15:01:03 2013] [error] IOError: Anfrage Daten-lese-Fehler
[Fri Dec 13 15:01:03 2013] [error] [client 93.157.241.232] mod_wsgi (pid=28709): Ausnahme ist aufgetreten, Verarbeitung WSGI-Skript '/var/www/ezduki/app/wsgi.py'.
[Fri Dec 13 15:01:03 2013] [error] [client 93.157.241.232] IOError: Fehler beim schreiben von Daten
Wie muss ich MultipartEntityBuilder und InputStream zusammen? Senden-Datei wie folgt
File f = new File(filePath);
multipartEntity.addPart("file", new FileBody(f));
funktioniert perfekt
Du musst angemeldet sein, um einen Kommentar abzugeben.
haben Sie vielleicht schon herausgefunden.
Aber ich denke, dass Sie verwenden können:
wenn Sie senden Sie die Datei per stream,die Sie nur bekommen können Sie die Datei per InputStream, der Anfrage auf dem server,ich verwende die dot-net-server,können Sie auf meinen code.
1,der client Weg
server erhalten
2,Sie wollen Weg von stream
client
erhalten server
Nicht zu finden, die direkte Lösung. Tun es auf diese Weise wissen:
Haben Sie versucht, mit MultiparEntity? Sehen Sie diesen code und versuchen
Wie Sie unten sehen, attachImage ist ein bitmap-und ich-Transformation in Bytes, dann versuche ich das senden einer extralangen an den server
Beim senden der Bilder allein mit text ,erwähnen wir den Datei-Typ..
Hier ist die Umsetzung