Tratando de descubrir qué hay de malo en mis codificaciones. Seguí una publicación de blog desde here.La publicación HTTP de varias partes de Android no envía el tipo MIME del archivo
Logré obtener los códigos para cargar el archivo en un servicio web PHP. Sin embargo, por alguna razón, aunque he establecido explícitamente el tipo MIME para el archivo, PHP muestra que el MIME es solo una cadena en blanco y, por lo tanto, se rechaza.
Aquí está mi codificaciones:
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;
}
Muchas gracias :) antes
Hola, ¿pueden decirme qué es 'charset' y qué le puse – SAndroidD