Versucht herauszufinden, was mit meinen Kodierungen falsch ist. Ich folgte einem Blogpost von here.Android Multipart HTTP Post sendet nicht den MIME-Typ der Datei
Ich habe es geschafft, die Codes zu erhalten, um die Datei tatsächlich auf einen PHP-Webdienst hochzuladen. Aus irgendeinem Grund, obwohl ich explizit den MIME-Typ für die Datei festgelegt habe, zeigt PHP, dass der MIME nur eine leere Zeichenfolge ist und daher zurückgewiesen wird.
Hier ist meine Codierungen:
public String SendPost(String fn, String bid, String caption, String uid, String APIKey, String postHash)
throws ParseException, ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost httppost = new HttpPost(UrbURL);
Log.i("POSTFN", fn);
Log.i("POSTFN", bid);
Log.i("POSTFN", caption);
Log.i("POSTFN", uid);
Log.i("POSTFN", APIKey);
Log.i("POSTFN", postHash);
String postAuth = uid + postHash;
postAuth = md5(postAuth);
postAuth = postAuth.substring(0, 16);
//Log.i("POSTAUTH", postAuth);
MultipartEntity mp = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
/*File tempImg = new File(fn);
FileBody bin = new FileBody(tempImg, "image/jpg");*/
mp.addPart("business_photo", new FileBody(new File(fn), "image/jpg"));
//StringBody s = new StringBody(bid, "text/plain", Charset.forName("UTF-8"));
mp.addPart("business_id", new StringBody(bid, "text/plain", Charset.forName("UTF-8")));
//s = new StringBody(caption, "text/plain", Charset.forName("UTF-8"));
mp.addPart("photo_caption", new StringBody(caption, "text/plain", Charset.forName("UTF-8")));
//s = new StringBody(uid, "text/plain", Charset.forName("UTF-8"));
mp.addPart("user_id", new StringBody(uid, "text/plain", Charset.forName("UTF-8")));
//s = new StringBody(APIKey, "text/plain", Charset.forName("UTF-8"));
mp.addPart("apikey", new StringBody(APIKey, "text/plain", Charset.forName("UTF-8")));
//s = new StringBody(postAuth, "text/plain", Charset.forName("UTF-8"));
mp.addPart("auth", new StringBody(postAuth, "text/plain", Charset.forName("UTF-8")));
httppost.setEntity(mp);
String response = EntityUtils.toString(httpclient.execute(httppost).getEntity(), "UTF-8");
httpclient.getConnectionManager().shutdown();
return response;
}
Vielen Dank vor :)
hallo kannst du mir bitte sagen, was 'charset' ist und was ich darauf eingestellt habe – SAndroidD