HTTP Post Multipart на Android не публикует изображение. - PullRequest
1 голос
/ 30 марта 2012

Все работает отлично, кроме изображения не будет отображаться, без ошибок, используя RoR.Что мне не хватает?Все вызвано асинхронным классом между прочим.Попробовать несколько разных методов безрезультатно, если кто-то может мне помочь, это было бы здорово.Готов опубликовать больше, если это необходимо.

Спасибо!

public static void multiPart(Bitmap image, String topicid, String topost, Context c){
        String responseString = "";
        {
            try {
                String imageName = System.currentTimeMillis() + ".jpg";
                HttpClient httpClient = new MyHttpClient(c);
                HttpPost postRequest = new HttpPost("https://urlofmyapi");
                if (image==null){
                    Log.d("TAG", "NULL IMAGE");
                }
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                image.compress(CompressFormat.JPEG, 75, bos);
                byte[] data = bos.toByteArray();
                ByteArrayBody bab = new ByteArrayBody(data, imageName);
                MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
                reqEntity.addPart("feed", new StringBody(topost));
                reqEntity.addPart("post_to", new StringBody(topicid));
                reqEntity.addPart("upload_file", bab);
                postRequest.setEntity(reqEntity);
                HttpResponse response = httpClient.execute(postRequest);
                BufferedReader reader = new BufferedReader(
                  new InputStreamReader(
                      response.getEntity().getContent(), "UTF-8"));
                String sResponse;
                StringBuilder s = new StringBuilder();
                while ((sResponse = reader.readLine()) != null) {
                   s = s.append(sResponse);
                }
                responseString = s.toString();
              System.out.println("Response: " + responseString);
            } catch (Exception e) {
                Log.e(e.getClass().getName(), e.getMessage());
            }
          }
        }

Ответы [ 2 ]

2 голосов
/ 26 сентября 2012

Возможно, вы можете сделать следующий шаг, чтобы импортировать библиотеку в ваш Android.

библиотека требований:

  • апач-mime4j-0.6.jar
  • httpmime-4.0.1.jar

    1. Щелкните правой кнопкой мыши свой проект и выберите свойства
    2. выбрать путь сборки Java
    3. выберите вкладку «Заказ и экспорт»
    4. Применить это
    5. Полностью удалите свой apk-файл с помощью adb uninstall, поскольку существующий apk не обслуживает новую библиотеку
    6. установить заново свой apk
    7. запустить его

Спасибо

Jenz

0 голосов
/ 30 марта 2012

HTTP POST-размещение изображений из Java в RoR всегда кажется мне ненужным. Вы пытались прикрепить бинарный файл как org.apache.http.entity.mime.content.FileBody объект, например, Многокомпонентная загрузка Android вопрос?

...