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

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

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

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

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

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

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

Обработка данных в Mysql и отправка обратно на андроид - Программирование Android
В приложении есть регистрация и авторизация . регистрацию прохожу и данные сохраняются в базе mysql . приложение мессенджер делаю если я...

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

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

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

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

13
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 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
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
14.01.2016, 14:11 #4
читал мое сообщение? первую строчку
0
Maxtron
50 / 50 / 3
Регистрация: 17.11.2012
Сообщений: 228
Записей в блоге: 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
Сообщений: 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);
И конечно этот код нужно выполнять в фоновом потоке(вы же знаете, да?)
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
Сообщений: 239
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
Сообщений: 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" />
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
Привет! Вот еще темы с ответами:

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

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

Дизайн андроид приложения - Программирование Android
Посоветуйте инструменты(векторной графики) для создания(рисования) фона, кнопок и т.д для андроид приложения.

Дизайн Андроид приложения - Программирование Android
Как же мне изменить дизайн своеого приложения? Вот, например, я нашел человека, который вроде делает дизайн для андроид приложений:...


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

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

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