Я пытаюсь загрузить некоторые файлы на свой сервер (через HTTP POST) из приложения для Android, и я проверил здесь много вопросов, но не могу заставить его работать. Я надеюсь, что кто-то может мне помочь:
Я также включил некоторые переменные в URL-адрес, чтобы убедиться, что по крайней мере они достигают сервера (GET).
HttpClient httpClient = new DefaultHttpClient();
String url="http://XXXXX.com/files/upload.php?flies=yes&eats=no&friend=yes";
HttpPost httppost = new HttpPost(url);
httppost.addHeader("Content-Type", "multipart/form-data");
String content,response="";
try {
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addTextBody("randomvar", "42");
//add image file
//String filename="eye.png";
//InputStream is=mContext.getAssets().open(filename);
//builder.addBinaryBody("image", is, ContentType.create("image/png"), filename);
//add text XML file
final File file = new File(mContext.getFilesDir() +"/"+"serverXML.xml");
FileBody fb = new FileBody(file);
builder.addPart("file", fb);
httppost.setEntity(builder.build());
response = EntityUtils.toString(httpClient.execute(httppost).getEntity(), "UTF-8");
Log.i(TAG, "RESPONSE FROM SERVER: "+response);
} catch (IOException e) {
Log.i(TAG, "Exception: "+response);
e.printStackTrace();
}
Это запускается и получает ответ от сервера. Ниже приведен вардамп $_GET, $_POST, $_FILES:
Я бы хотел, чтобы POST имел файл и переменную
В моем Eclipse Logcat я вижу следующее после использования MultiPartEntityBuilder:
10-06 02:36:57.231: D/dalvikvm(15888): DexOpt: couldn't find static field Lorg/apache/http/message/BasicHeaderValueParser;.INSTANCE
10-06 02:36:57.241: W/dalvikvm(15888): VFY: unable to resolve static field 5966 (INSTANCE) in Lorg/apache/http/message/BasicHeaderValueParser;
10-06 02:36:57.241: D/dalvikvm(15888): VFY: replacing opcode 0x62 at 0x001b
10-06 02:36:57.241: D/dalvikvm(15888): DexOpt: couldn't find static field Lorg/apache/http/message/BasicHeaderValueFormatter;.INSTANCE
10-06 02:36:57.241: W/dalvikvm(15888): VFY: unable to resolve static field 5960 (INSTANCE) in Lorg/apache/http/message/BasicHeaderValueFormatter;
Я думаю, что правильно включил все необходимые библиотеки:
ИЗМЕНИТЬ:
Мне удалось это решить, мое решение описано в моем ответе ниже.