Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Алексей125
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 23
#1

Отправка файла на сервер http post запросом - Программирование Android

03.07.2015, 07:09. Просмотров 512. Ответов 0
Метки нет (Все метки)

Здравствуйте. Задача следующая - нужно отправить HTTP POST запрос, содержащий несколько переменных и файл. В сети много информации, но собрать в рабочий код я так и не смог. Люди, посмотрите код пожалуйста... Сижу над проблемой уже 4 день...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
String sendfile (String filename, String filepath) throws IOException {
        String boundary = Long.toHexString(System.currentTimeMillis());
        String charset = "UTF-8";
        URL url = new URL("...");
        File file = new File(filepath);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod("POST");
        con.setUseCaches(false);
        con.setDoOutput(true);
        con.setDoInput(true);
        con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
        OutputStream os = con.getOutputStream();
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(os, charset), true);
 
        writer.println("--" + boundary);
        writer.println("Content-Disposition: form-data; name=\"key\"");
        writer.println();
        writer.println(key);
 
        writer.println("--" + boundary);
        writer.println("Content-Disposition: form-data; name=\"client_id\"");
        writer.println();
        writer.println(client_id);
 
        writer.println("--" + boundary);
        writer.println("Content-Disposition: form-data; name=\"direction_id\"");
        writer.println();
        writer.println(direction_id);
 
        writer.println("--" + boundary);
        writer.println("Content-Disposition: form-data; name=\"client_files\"; filename=\"" + filename + "\"");
        writer.println("Content-Type: image/jpg");
        writer.println();
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        for (String line; (line = reader.readLine()) != null; ) writer.println(line);
        writer.println("--" + boundary + "--");
        os.flush();
        os.close();
        BufferedReader in = new BufferedReader(
                new InputStreamReader(
                        con.getInputStream()));
        return in.readLine();
    }
проблема где-то в последнем блоке, т.к. переменные сервер видит, и в ответ шлет, что файл не найден (пробовал закомментировать блок отправки одной переменной - пришла ошибка авторизации).
p.s. Это уже четвертый или пятый (уже не помню) вариант метода... У кого есть опыт подобного кода подскажите пожалуйста...

Добавлено через 1 час 40 минут
p.p.s Должно соответствовать форме:
HTML5
1
2
3
4
5
6
7
8
9
<form action="..." method="post" enctype="multipart/form-data">
            <input type="hidden" name="key" value="a0c8d4a8fa221625512d4a338cb300e8">
            <input type="hidden" name="direction_id" value="19">
            <input type="hidden" name="client_id" value="5">
            
            <input type="file" name="client_files[]">
            <input type="file" name="client_files[]">
            <button class="b-button">Загрузить файл</button>
        </form>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2015, 07:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отправка файла на сервер http post запросом (Программирование Android):

Отправка файла и данных POST запросом AsyncTask - Программирование Android
Доброго, Возникла идея для написания программы которая бы отправляла файл на PHP сервер методом POST при помощи AsyncTask, как можно...

Отправка post запросов на сервер - Программирование Android
доброго, имеется программа на пк и хочу сделать аналог для андроида, но в андроиде я не силен, в общем нужно три формы логин, веббровсер и...

Отправка массива данных из андроид приложения на сервер по http - Программирование Android
Пишу приложения которое должно собирать кое какую инфу и отправлять её на удалённый сервер. Использую следующий метод отправки: ...

Отправка данных на сервер методом POST c AsyncTask - Программирование Android
Доброго времени суток. Возникла проблема с отправкой данных. Приложение запускается, не вылетает, но на сервер ничего не отправляет. Уже...

http Post - Программирование Android
Такая проблема. В пост запросе, в хидер добавляю httpPost.addHeader(&quot;Content-Length&quot;, count); и вываливается исключение : ...

HTTP post android - Программирование Android
Просмотрел множество статей об этом, пытался использовать простейший пример HttpRequest, но все оказалось не так уж легко. Просмотрел как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2015, 07:09
Привет! Вот еще темы с ответами:

Android query и HTTP Post - Программирование Android
Добрый день. Очень уж понравилась библиотека. Но ни как не получается передать корректный POST запрос. Вот кусок кода: ...

Русский Post запрос в базу через http - Программирование Android
Кто в курсе этого метода связи с БД на удаленном сервере, как через POST отправить переменные с русскими буквами? Английский воспринимает...

Http POST запрос, как правильно написать - Программирование Android
Добрый день, мне нужно отправить данные на сервер, посредством http post запросом, нужно добавить автомобиль, сам пост запрос выглядит вот...

Отправка POST - Программирование Android
Дайте пожалуйства рабочий пример отправки POST запроса на сервер. ПЕрекопал пол интернета не чего не работает из примеров. Версия от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru