[Android] Cookies opslaan en hergebruiken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • nec07
  • Registratie: December 2009
  • Laatst online: 30-08 10:12
Heey allemaal,

Ik ben voor informatica VWO-6 bezig een rooster app te maken die van de school site je rooster afhaald. Nu gebruikt de site cookies om bij te houden hoe vaak je gekeken hebt en hoeveel gebruikers er zijn etc. Ik heb gezocht naar een manier om de cookies op te slaan en later mee terug te sturen bij het "updaten" van je rooster.

Ik ben er achter gekomen dat ik een PersistantCookieStore moet maken/gebruiken. Ik heb gegoogled en kwam op dit uit: http://stackoverflow.com/a/7434366

Ik heb de Jar gedownload en geïmporteerd, alleen het werkt niet bij compilen krijg ik een error:
The constructor PersistentCookieStore(WeekActivity.DownloadUserInfoTask) is undefined

Ik kan maar niet vinden wat ik fout doe.

Dit is mijn code:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import com.loopj.android.http.*;

    // Het downloaden
    private class DownloadUserInfoTask extends AsyncTask<Void, Void, Void> {

        int mStatusCode = 0;
        String mResultString;
        Exception mConnectionException;

        @Override
        //op de achtergrond de site laden
        protected Void doInBackground(Void... args) {
            
            String link = "link";
                    
            PersistentCookieStore cookieStore = new PersistentCookieStore(this);
            DefaultHttpClient httpclient = createHttpClient();
            httpclient.setCookieStore(cookieStore);
            HttpGet httpget = new HttpGet(link);


Het gaat dus op regel 16 fout dat hij PersistantCookieStore niet kent.

Mvg Stephan

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 09:34

CoolGamer

What is it? Dragons?

this is geen instantie van android.content.Context. Je zal dus ergens een instantie van Context zien te krijgen en deze mee geven aan de constructor. Bijvoorbeeld door:
Java:
1
HttpContext context = new BasicHttpContext();

Stond ook op die pagina.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • nec07
  • Registratie: December 2009
  • Laatst online: 30-08 10:12
Sorry, ik begrijp niet helemaal wat je hier mee bedoeld? Want hier: http://loopj.com/android-async-http/

gebruiken ze wel gewoon this
Java:
1
2
PersistentCookieStore myCookieStore = new PersistentCookieStore(this);
myClient.setCookieStore(myCookieStore);

Acties:
  • 0 Henk 'm!

  • JustAnotherDev
  • Registratie: Augustus 2004
  • Laatst online: 26-09 11:33
"this" refereert naar de klasse waarin de variabele geinstantieerd wordt. Je instantieert hem nu in een AsyncTask dus, "this" is de AsyncTask. Als je naar de api kijkt van PersistentCookieStore zie je dat de constructor een Context instantie verwacht. Je zou je context mee kunnen geven als parameter (let erop dat je hem dan wel final maakt), maar er zijn nog vele andere opties.

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 09:34

CoolGamer

What is it? Dragons?

Probeer je anders eens te verdiepen in de basis van Java. Dan zal duidelijk worden wat keywords als this betekenen. Met alleen copy-pasten zal weinig nuttigs kunnen maken.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • nec07
  • Registratie: December 2009
  • Laatst online: 30-08 10:12
Als eerst: Het is misschien niet zo bedoeld CoolGamer maar ik voel me nogal aangevallen door je statement. Op school is het moeilijkste wat wij zo een beetje gedaan hebben in Java een array maken, bovendien heb ik maar 3 contacturen met de leraar op vrijdag. En om het af te make is hij geen held in Java hij is meer van de databases etc. Dus voor mij is dit al best veel diepgang en ik probeer zoveel mogelijk te begrijpen maar je zult vast wel begrijpen dat het erg moeilijk is om in een korte tijd van alles over java te leren als je engels niet zo goed is, de android reference guide nou ook niet heel duidelijk/gebruiksvriendelijk is en je geen hulp kunt krijgen.

Verder kreeg ik geen error dat this fout was maar dat de methode niet herkend werd, wat voor nog meer verwarring zorgt.

Ik denk dat het gelukt is nu, weet iemand of het mogelijk is om te kijken of de cookies ook opgeslagen en verstuurd worden bij volgende requests?

In ieder geval heel erg bedankt!

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Je hoeft je niet aangevallen te voelen hoor. Ik denk dat het goed bedoeld is.
this is een nogal fundamenteel keyword in Java (of elke andere object georienteerde taal) en elke leraar, welk niveau ook, zou je dat uit moeten kunnen leggen.

Checken of je cookies goed afgehandeld worden kan je met een proxy doen. Voor Mac gebruik ik Charles, maar in Firefox heb je als het goed is de Firebug extensie waar je precies kan zien wat er verstuurd en verzonden wordt. Daar zou de cookie-informatie in moeten terugkomen :)

[ Voor 4% gewijzigd door armageddon_2k1 op 09-03-2012 12:59 ]

Engineering is like Tetris. Succes disappears and errors accumulate.

Pagina: 1