Сбор данных с сервера Android - PullRequest
       4

Сбор данных с сервера Android

1 голос
/ 17 октября 2011

Я хотел бы получить данные с сервера phpMyAdmin.Единственная функция, которую я знаю, это:

private String getPage() {
            String str = "***";

            try
            {
                HttpClient hc = new DefaultHttpClient();
                HttpPost post = new HttpPost("http://mywebsite.me");
                HttpResponse rp = hc.execute(post);

                if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
                {
                    str = EntityUtils.toString(rp.getEntity());
                }
            }catch(IOException e){
                e.printStackTrace();
            }  

            return str;
        }

Она не работает, потому что мне нужно аутентифицировать себя с помощью имени пользователя и пароля.Еще одна причина, по которой я думаю, что эта функция не будет работать, заключается в том, что она захватывает источник страницы ( ctrl + u в Chrome) и нужные мне значения отсутствуют, онинаходятся в таблице на сервере.Как я мог это сделать?

Ответы [ 3 ]

1 голос
/ 03 февраля 2012

Я не знаю, получил ли ваш ответ, но простой способ - создать php-файл с запросом для извлечения необходимых вам данных из базы данных и вывода данных в формате xml или json из php-файла.Если вам нужен пример проверки:

http://webdesignergeeks.com/mobile/android/android-login-authentication-with-remote-db/, он показывает, как получить данные из базы данных в php и как сделать http-запрос из приложения для Android.

Их делаютHTTP POST или HTTP GET-запрос от приложения Android на сервер, чтобы получить необходимые данные.Что касается имени пользователя и пароля.Вы ссылаетесь на сертификат SSL.Где именно вам нужны имя пользователя и пароль?

0 голосов
/ 17 октября 2011

Если вашему веб-сайту требуется аутентификация, тогда используйте livehttpheader addon (firefox) или wireshark для захвата идущего POST-запроса, затем используйте этот URL для получения источника (я предполагаю, что если вы успешно вошли в систему, на странице будут отображаться данные из phpmyadmin ( один, о котором вы говорите)), затем найдите этот источник, чтобы найти нужные вам значения.

Пример ссылки должен быть таким

http://mywebsite.me?login=true&username=myusername&password=mypassword&extrafield=xxx....

Вы должны использовать эту ссылку в своем коде

 HttpPost post = new HttpPost("http://mywebsite.me?login=true&username=myusername&password=mypassword&extrafield=xxx....");

P.S .: Я не знаю кодирование Android, но общее решение будет как выше:)

0 голосов
/ 17 октября 2011

Я думаю, вы поступили неправильно.Я предполагаю, что phpAdmin на самом деле phpmyadmin, и вы ищете данные из своей базы данных?

PHPMyAdmin - это выбор страниц, которые делают то, что вы хотите сделать для браузера: извлекать информацию из базы данных,Вам не нужно проходить через эту страницу, чтобы получить информацию.Вы можете либо написать несколько файлов .php, которые извлекают данные для вас (например, в формате XML или JSON), и извлечь их с помощью приведенного выше кода, либо попытаться связаться с вашей базой данных напрямую, без вмешательства сервера apache.

Изменить: похоже, что непосредственный контакт не слишком прост, и ваш логин должен быть действительным для внешних подключений (что может быть и не так).Я полагаю, вам следует написать так называемый интерфейс "REST" (набор файлов, которые в основном делают то же, что и phpmyadmin, но не так сложно: вы запрашиваете таблицу, и она дает вам это без всего, что показывает phpmyadmin).

посмотрите, например, здесь для получения дополнительной информации о том, как это сделать: http://www.helloandroid.com/tutorials/connecting-mysql-database

...