Я имею дело с следующей проблемой: при попытке загрузить изображение через MultiPart Entity, и кажется, что несколько обновлений на HttpClient/MIME взламывают все. Я пытаюсь использовать следующий код, но он не работает с NoClassDefFoundError
:
public static void executeMultipartPost(File image, ArrayList<Cookie> cookies, String myUrlToPost) {
try {
// my post instance
HttpPost httppost = new HttpPost(myUrlToPost);
// setting cookies for the connection session
if (cookies != null && cookies.size() > 0) {
String cookieString = "";
for (int i=0; i<cookies.size(); ++i) {
cookieString += cookies.get(i).getName()+"="+cookies.get(i).getValue()+";";
}
cookieString += "domain=" + BaseUrl + "; " + "path=/";
httppost.addHeader("Cookie", cookieString);
}
// creating the http client
HttpClient httpclient = new DefaultHttpClient();
// creating the multientity part [ERROR OCCURS IN THIS BELLOW LINE]
MultipartEntity multipartEntity = new MultipartEntity();
multipartEntity.addPart("photoupload", new FileBody(image));
httppost.setEntity(multipartEntity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
} catch (Exception e) {}
}
Этот метод полностью компилируется и использует библиотеки httpclient-4.0.1.jar и httpmime-4.2.jar, но опять же, он сбой для меня в комментариях.
Я что-то упускаю?
Хорошо, здесь у вас есть библиотеки, необходимые для публикации Multipart, все кредиты Satya Komatineni и David Maclean, писателям Pro Android 3 и теперь 4, и я цитирую их книгу
Чтобы выполнить многопользовательские вызовы POST, вам нужно получить три дополнительных проекта с открытым исходным кодом Apache: Apache Commons IO, Mime4j и HttpMime. Вы можете загрузить эти проекты со следующих веб-сайтов: Commons IO: http://commons.apache.org/io/ Mime4j: http://james.apache.org/mime4j/ HttpMime: http://hc.apache. org/downloads.cgi (внутри HttpClient)
У меня такая же проблема, и она была исправлена путем перемещения файлов jars в каталог libs в вашем проекте Android.
Убедитесь, что банка проверена в пути построения проектов. (Проект → Свойства)
clean
свой проект.