Drupal Android App Войти Постоянство - PullRequest
3 голосов
/ 29 мая 2011

Я успешно настроил приложение для Android, которое регистрируется на моем сайте drupal.

Моя проблема в том, что сеанс пользователя, вошедшего в систему, длится не очень долго.На сайте четко отображается мой пользователь, вошедший на сайт, но в течение часа пользователь перестает быть активным на сайте.(Я предполагаю, потому что я не совсем точно знаю это.)

Может кто-нибудь подсказать, почему это происходит?

Код выглядит следующим образом:

protected HttpResponse doInBackground(Void... params) {
// TODO Auto-generated method stub
    HttpClient httpClient   =   new DefaultHttpClient();
    HttpPost httpPost       =   new HttpPost("http://mystestsite.com/testpoint/user/login");

        // TODO Auto-generated method stub
        try{
            List<NameValuePair> nameValuePairs  =   new ArrayList<NameValuePair>();
            nameValuePairs.add( new BasicNameValuePair("password", "guest") );
            nameValuePairs.add( new BasicNameValuePair("username", "guest") );
            httpPost.setEntity( new UrlEncodedFormEntity(nameValuePairs));

            //Execute HTTP post request
            response    =   httpClient.execute(httpPost);

            Log.i("SEEMS TO WORK", response.toString());
            Log.v("CODE", httpPost.getRequestLine().toString() + " - " + response.toString());

        }catch(Exception e){
            Log.e("HTTP ERROR", e.toString());
        }
return response;
}

1 Ответ

0 голосов
/ 05 июня 2011

Похоже, это проблема с настройкой файлов cookie.Когда я делаю такие вещи, я обычно просто нажимаю на мои заголовки http, пока они не выглядят так же, как заголовки, отправляемые из веб-браузера.Проблема в том, что вы знаете, что посылают веб-браузер и приложение для Android, так что вот что вам нужно попробовать.

Это не обязательно решение кода вашей проблемы, но может быть полезным.

Используйте Charles (отличноинструмент) http://www.charlesproxy.com/ для этого.И нет, я не имею никакого отношения к компании, это просто отличный инструмент.

В Charles есть функция, называемая обратным прокси-сервером, и в основном она позволяет перенаправлять трафик через Charles на ваш сервер drupal, и выможно проверить, как он поступает в ваше приложение и из него.

Используя charles, вы можете узнать, как выглядит хороший запрос из вашего веб-браузера, а затем вы можете узнать, как выглядят запросы из вашего приложения для Android.Сравните их, и вы увидите, где ваше приложение плохо формирует заголовки запросов.

Фаза отладки выглядит следующим образом:

После того, как вы настроили Чарльза, нажмите на свой сервер drupal aпару раз и проверьте структуру запроса / ответа, которую вы видите в браузере.

Затем пару раз нажмите на свой сервис из приложения android и обратите внимание на различия.Может быть, печенье не проходит, может быть, оно искажено, может быть, есть что-то еще о заголовках.Это позволит вам увидеть, для чего нужно стрелять, чтобы Drupal мог принимать запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...