Android - загрузка изображений без отправки контента - PullRequest
0 голосов
/ 18 февраля 2011

Я изучал это последние два дня и не могу найти решение своей проблемы.Я пытаюсь опубликовать изображение на сервере с помощью httppost.Я попробовал два способа сделать это и завершить публикацию, но без содержимого, т. Е. Длина содержимого равна 0. Первый:

String url = "MYURL";
        HttpClient httpClient = new DefaultHttpClient();

     try {
             httpClient.getParams().setParameter("http.socket.timeout", new Integer(90000)); // 90 second
             HttpPost post = new HttpPost(url);
             File SDCardRoot = Environment.getExternalStorageDirectory();
             File file = new File(SDCardRoot,"/DCIM/100MSDCF/DSC00004.jpg");
             FileEntity entity;
             entity = new FileEntity(file,"binary/octet-stream");
             entity.setChunked(true);
             post.setEntity(entity);
             post.addHeader("Header", "UniqueName");
             HttpResponse response = httpClient.execute(post);
             if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
                     Log.e("Here","--------Error--------Response Status line code:"+response.getStatusLine());
             }else {
                     // Here every thing is fine.
             }

             HttpEntity resEntity = response.getEntity();
             if (resEntity == null) {
                 Log.e("Here","---------Error No Response!!-----");
             }
     } catch (Exception ex) {
             Log.e("Here","---------Error-----"+ex.getMessage());
             ex.printStackTrace();
     } finally {
               httpClient.getConnectionManager().shutdown();
     }

, а второй:

String url = "MYURL";
        //File SDCardRoot = Environment.getExternalStorageDirectory();
        File file = new File(Environment.getExternalStorageDirectory(),"/DCIM/100MSDCF/DSC00004.jpg");
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(file), -1);
            reqEntity.setContentType("binary/octet-stream");
            reqEntity.setChunked(true);
            // Send in multiple parts if needed
            httppost.setEntity(reqEntity);
            HttpResponse response = httpclient.execute(httppost);
            Log.d("finishing", "The try catch function");
        } catch (Exception e) {
            // show error
        }*/

Как вы видите, я жестко закодировал путь к определенному изображению, это должно быть динамически, когда я его запускаю и запускаю.Кто-нибудь может увидеть, что я делаю не так?Я что-то упускаю?Я знаю, что я использую setChunked и setContenttype - есть ли опция setContent?Будем благодарны за любую помощь.

Спасибо, jr83.

1 Ответ

1 голос
/ 18 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...