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

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

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

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

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

Пишу приложения которое должно собирать кое какую инфу и отправлять её на удалённый сервер. Собственно не понятен процесс взаимодействия андроида и сервера. Интересует какие классы используются, где можно подробно почитать про это дело, желательно с примерами. Ну и самое главное какие могут быть способы протестировать всё локально. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2016, 12:25     Отправка данных из андроид приложения на сервер
Посмотрите здесь:
Android Отправка массива данных из андроид приложения на сервер по http
Android Обработка данных в Mysql и отправка обратно на андроид
Android Отправка данных на сервер
Android Отправка данных на сервер
Отправка данных на сервер используя Retrofit Android
Android Отправка данных на сервер методом POST c AsyncTask
Android Дизайн Андроид приложения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
14.01.2016, 13:13     Отправка данных из андроид приложения на сервер #2
Смотря какой сервер, конкретнее бы.
Если например http сервер то можно POST запросами постить туда информацию.
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
14.01.2016, 13:27  [ТС]     Отправка данных из андроид приложения на сервер #3
Ну вот мне бы по подробней.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
14.01.2016, 14:11     Отправка данных из андроид приложения на сервер #4
читал мое сообщение? первую строчку
Maxtron
50 / 50 / 3
Регистрация: 17.11.2012
Сообщений: 228
Записей в блоге: 1
14.01.2016, 15:17     Отправка данных из андроид приложения на сервер #5
Посмотрите библиотеку Volley
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
14.01.2016, 15:20  [ТС]     Отправка данных из андроид приложения на сервер #6
Да я пока не знаю))

Ну вот например передача данных на http.
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
14.01.2016, 19:58     Отправка данных из андроид приложения на сервер #7
класс HttpURLConnection
запрос POST
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
15.01.2016, 12:05  [ТС]     Отправка данных из андроид приложения на сервер #8
А как можно сэмулировать сервер локально? Ну например что бы файлы .php находились локально на телефоне а url был просто путь к ним? Ну и туда пост запросы отправлять.
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
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);
И конечно этот код нужно выполнять в фоновом потоке(вы же знаете, да?)
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
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
15.01.2016, 14:26     Отправка данных из андроид приложения на сервер #11
Цитата Сообщение от Frai32 Посмотреть сообщение
такой лог нормальный?
Понятия не имею, что это значит. Главное чтоб данные до вашего сервера доходили, они доходят?
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;
 
 
?>
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
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" />
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2016, 04:43     Отправка данных из андроид приложения на сервер
Еще ссылки по теме:
Адаптировать андроид приложения Android
Android Дизайн андроид приложения
Android Бот для андроид-приложения
Создание приложения для андроид Android
POST запрос из андроид приложения Android

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

Или воспользуйтесь поиском по форуму:
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 минут
Интересует вопрос: если не например надо отправить коллекцию объектов, как быть тогда?
Yandex
Объявления
16.01.2016, 04:43     Отправка данных из андроид приложения на сервер
Ответ Создать тему
Опции темы

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