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

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

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

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

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

Пишу приложения которое должно собирать кое какую инфу и отправлять её на удалённый сервер. Собственно не понятен процесс взаимодействия андроида и сервера. Интересует какие классы используются, где можно подробно почитать про это дело, желательно с примерами. Ну и самое главное какие могут быть способы протестировать всё локально. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2025 / 1767 / 548
Регистрация: 12.05.2014
Сообщений: 6,265
Завершенные тесты: 1
14.01.2016, 13:13     Отправка данных из андроид приложения на сервер #2
Смотря какой сервер, конкретнее бы.
Если например http сервер то можно POST запросами постить туда информацию.
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 134
14.01.2016, 13:27  [ТС]     Отправка данных из андроид приложения на сервер #3
Ну вот мне бы по подробней.
Паблито
2025 / 1767 / 548
Регистрация: 12.05.2014
Сообщений: 6,265
Завершенные тесты: 1
14.01.2016, 14:11     Отправка данных из андроид приложения на сервер #4
читал мое сообщение? первую строчку
Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1
14.01.2016, 15:17     Отправка данных из андроид приложения на сервер #5
Посмотрите библиотеку Volley
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 134
14.01.2016, 15:20  [ТС]     Отправка данных из андроид приложения на сервер #6
Да я пока не знаю))

Ну вот например передача данных на http.
Lumber
96 / 96 / 37
Регистрация: 02.12.2015
Сообщений: 236
14.01.2016, 19:58     Отправка данных из андроид приложения на сервер #7
класс HttpURLConnection
запрос POST
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 134
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
Сообщений: 134
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
Сообщений: 134
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 Обработка данных в Mysql и отправка обратно на андроид
Android Отправка массива данных из андроид приложения на сервер по http
Можно ли написать веб сервер на Яве для клиента на Андроид,имея под рукой только телефон на том самом андроид? Android
Android Дизайн Андроид приложения

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

Или воспользуйтесь поиском по форуму:
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 134
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     Отправка данных из андроид приложения на сервер
Ответ Создать тему
Опции темы

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