Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
#1

Отправка данных из Android-приложения на сервер - Программирование Android

14.01.2016, 12:25. Просмотров 1810. Ответов 13
Метки нет (Все метки)

Пишу приложения которое должно собирать кое какую инфу и отправлять её на удалённый сервер. Собственно не понятен процесс взаимодействия андроида и сервера. Интересует какие классы используются, где можно подробно почитать про это дело, желательно с примерами. Ну и самое главное какие могут быть способы протестировать всё локально. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2016, 12:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отправка данных из Android-приложения на сервер (Программирование Android):

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

Android, отправка фотографии на сервер - Программирование Android
Мне нужно отправить файл на сервер. После выбора фотографии в галереи мы вызываем данный метод, которому передаем файл: public static...

Отправка данных на сервер - Программирование Android
Нужна помощь. У меня кое-какие проблемы с кодом. Я отправляю данные на удаленный сервер, вроде все правильно написано, но выдает много...

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

Отправка данных на сервер используя Retrofit - Программирование Android
Доброе утро. Нужно отправить данные на сервер. Нужна ваша помощь. Вот те классы которые я смог написать. Но не знаю как продолжить. ...

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

13
Pablito
2580 / 2061 / 643
Регистрация: 12.05.2014
Сообщений: 7,232
Завершенные тесты: 1
14.01.2016, 13:13 #2
Смотря какой сервер, конкретнее бы.
Если например http сервер то можно POST запросами постить туда информацию.
0
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
14.01.2016, 13:27  [ТС] #3
Ну вот мне бы по подробней.
0
Pablito
2580 / 2061 / 643
Регистрация: 12.05.2014
Сообщений: 7,232
Завершенные тесты: 1
14.01.2016, 14:11 #4
читал мое сообщение? первую строчку
0
Maxtron
50 / 50 / 3
Регистрация: 17.11.2012
Сообщений: 229
Записей в блоге: 1
14.01.2016, 15:17 #5
Посмотрите библиотеку Volley
0
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
14.01.2016, 15:20  [ТС] #6
Да я пока не знаю))

Ну вот например передача данных на http.
0
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
14.01.2016, 19:58 #7
класс HttpURLConnection
запрос POST
0
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
15.01.2016, 12:05  [ТС] #8
А как можно сэмулировать сервер локально? Ну например что бы файлы .php находились локально на телефоне а url был просто путь к ним? Ну и туда пост запросы отправлять.
0
DarkVortex
103 / 69 / 18
Регистрация: 07.07.2014
Сообщений: 240
15.01.2016, 12:18 #9
Frai32,
Цитата Сообщение от Frai32 Посмотреть сообщение
А как можно сэмулировать сервер локально?
нам потребуется wifi, компьютер и немного головного мозга.
1 - На комп ставим web сервер (для windows подойдет http://www.denwer.ru/, если у вас linux вы знаете что делать(но тогда бы не создавали эту тему))
2 - узнаем какой ip присвоил роутер вашему компу (самый тупой способ в браузере пытаться открыть 192.168.0.x, где x увеличивается от 2 до получения профита)
3 - приступаем к тестированию.
POST запрос можно отправить так:
Java
1
2
3
4
5
6
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://192.168.0.x/file.php"); 
        List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
        nameValuePair.add(new BasicNameValuePair("name", "value"));
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
        httpClient.execute(httpPost);
И конечно этот код нужно выполнять в фоновом потоке(вы же знаете, да?)
1
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
15.01.2016, 14:06  [ТС] #10
Не ну это да.

Добавлено через 33 минуты
ну ексепшенов вроде не вылетает....

Добавлено через 49 минут
такой лог нормальный?

C++
1
2
3
4
5
System.out: Thread-61008(ApacheHTTPLog):Reading from variable values from setDefaultValuesToVariables
System.out: Thread-61008(ApacheHTTPLog):isSBSettingEnabled false
System.out: Thread-61008(ApacheHTTPLog):isShipBuild true
System.out: Thread-61008(ApacheHTTPLog):SMARTBONDING_ENABLED is false
System.out: Thread-61008(ApacheHTTPLog):SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false
0
DarkVortex
103 / 69 / 18
Регистрация: 07.07.2014
Сообщений: 240
15.01.2016, 14:26 #11
Цитата Сообщение от Frai32 Посмотреть сообщение
такой лог нормальный?
Понятия не имею, что это значит. Главное чтоб данные до вашего сервера доходили, они доходят?
0
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
15.01.2016, 14:28  [ТС] #12
нет, у меня такой файл php

PHP
1
2
3
4
5
6
7
8
9
10
11
<?php // серверная часть вывода json
 
$pass =";;";
 
if (isset($_POST['name'])) { 
    $pass = $_POST['name'];
}   
    echo $pass;
 
 
?>
0
DarkVortex
103 / 69 / 18
Регистрация: 07.07.2014
Сообщений: 240
15.01.2016, 14:45 #13
Frai32, хм, а как вы проверяете был ли запущен этот файл?
Попробуйте так:
PHP
1
2
3
4
<?php
$content = $_SERVER['REQUEST_TIME']." : ".$_SERVER['REMOTE_ADDR']." : ".$_POST['name']."\n";
file_put_contents("log.txt", $content, FILE_APPEND);
?>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        new Thread(new Runnable() {
            public void run() {
                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost("http://192.168.0.x/log.php"); 
                List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
                nameValuePair.add(new BasicNameValuePair("name", "value"));
                try {
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    httpClient.execute(httpPost);
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } 
        }).start();
В манифест нужно добавить
XML
1
    <uses-permission android:name="android.permission.INTERNET" />
0
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
16.01.2016, 04:43  [ТС] #14
пермишен у меня есть.

я использую такой код:

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
  class RequestTask extends AsyncTask<String, String, String> {
 
        @Override
        protected String doInBackground(String... params) {
 
            try {
 
                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost("http://10.254.254.105/googlefit/login.php");
                List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
                nameValuePair.add(new BasicNameValuePair("name", "value"));
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
                httpClient.execute(httpPost);
 
            } catch (Exception e) {
                Log.d(TAG,"Exp=" + e);
            }
            return null;
        }
 
        @Override
        protected void onPostExecute(String result) {
 
 
            super.onPostExecute(result);
        }
 
        @Override
        protected void onPreExecute() {
 
 
            super.onPreExecute();
        }
    }
Добавлено через 2 минуты
Такой файл php у меня ошибку выдаёт.

Notice: Undefined index: name

Добавлено через 13 часов 21 минуту
В общем допёр до всего теперь надо что бы JSON объекты отправлял.

Добавлено через 27 минут
Интересует вопрос: если не например надо отправить коллекцию объектов, как быть тогда?
0
16.01.2016, 04:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2016, 04:43
Привет! Вот еще темы с ответами:

Работа gps и отправка данных на сервер при закрытом приложении - Программирование Android
Добрый день. Подскажите, можно ли сделать так: Когда приложение закрыто, чтобы сервис работал отслеживая местоположение gps и...

Можно ли написать веб сервер на Java для клиента на Android, имея под рукой только телефон на Android? - Программирование Android
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее- какой программой компилировать код, какой лучше выбрать...

Отправка E-Mail средствами Android - Программирование Android
Можно ли отправить письмо на почту из андроид приложения, оминая Intent.ACTION_SEND?

C++ Qt и java Android отправка SMS - Программирование Android
Здравствуйте. Уже пол года мучаю Qt увидел в настройках компиляцию под Android и решил попробовать. Установил Linux и Qt c SDK, NDK, ANT....


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

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

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