Avatar billede di8leva Nybegynder
22. juli 2006 - 21:18 Der er 7 kommentarer og
2 løsninger

Java som webbrowser og sessioncookies

Hejsan.

Jeg arbejder med at lave et program det kan hente information fra hjemmesider. So far so good.

Jeg kan hente all information uden problemer, og den kod jeg bruger finder i neden. Men sa har jeg stödt på et problem med sessioncookies.

Denne hjemmesiden "http://www.robur.se/RT/FundListTemplate____51.aspx" viser kurser på nogle fonder, og i Firefox og IE virker det fint (pröv selv) men hvis jeg bruger mitt program sa far jeg svaret:
"Du er nödt til at tillåta sessioncookies i din browser".

Nogen der ved hvordan jeg kan löse problemet?

Min kode til download fölger neden:
----------------------------------------------
public static String download() throws Exception
{
    URL url = new URL("http://www.robur.se/RT/FundListTemplate____51.aspx");
    URLConnection conn = url.openConnection();
    conn.connect();
    InputStream in = conn.getInputStream();
    byte[] buffer = new byte[BLOCK];
    StringBuffer strBuf = new StringBuffer();
    int read = 0;
    while((read = in.read(buffer, 0, BLOCK)) != -1)
    {
        byte[] bytes;
        if(read != buffer.length)
        {
            bytes = new byte[read];
            System.arraycopy(buffer, 0, bytes, 0, read);
        }
        else
            bytes = buffer;
        strBuf.append(new String(bytes));
    }
    return strBuf.toString();
}
Avatar billede tdafoobar Nybegynder
22. juli 2006 - 21:25 #1
Det der menes er alm. cookies

kig denne artikel: http://www.hccp.org/java-net-cookie-how-to.html
Avatar billede arne_v Ekspert
22. juli 2006 - 21:32 #2
URLConnection laver rå HTTP requests - du skal selv håndtere cookies.

Det kan man sagtens.

Men er man doven anlagt så henter man http://jakarta.apache.org/commons/httpclient/
og bruger den. Den håndterer cookies etc. uden at man skal kode en linie.
Avatar billede di8leva Nybegynder
25. juli 2006 - 22:51 #3
Selvfölig er man doven. :) Vem er det ikke?

Men jeg syns det virker som at det alligevel er nemmere at styre det selv, framför at hente ned HttpClient og alle dess dependencies. Så jeg ska igång med at pröve tdafoobar's link. Du må gerne smide et svar.

Et kort spörsmål bara: Tror I det har nogen betydning hvad för data jeg smider tilbage til hjemmesiden, eller kan det vare noget fup, hvad som helst?
Avatar billede arne_v Ekspert
26. juli 2006 - 02:45 #4
eksempel:

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;

public class Test {
    public static void main(String[] args) throws Exception {
        HttpClient client = new HttpClient();
        GetMethod met = new GetMethod("http://www.eksperten.dk/");
        client.executeMethod(met);
        String html = met.getResponseBodyAsString();
        System.out.println(html);
    }
}

javac -classpath C:\Jakarta\commons-httpclient-2.0.2\commons-httpclient-2.0.2.jar Test.java
java -classpath .;C:\jakarta\commons-httpclient-2.0.2\commons-httpclient-2.0.2.jar;C:\Jakarta\commons-logging-1.0.4\commons-logging.jar Test
Avatar billede arne_v Ekspert
26. juli 2006 - 02:49 #5
så du behøver kun commons-logging og den har du formentlig på din harddisk

(jeg talte lige - jeg har 34 kopier af den på min harddisk)
Avatar billede tdafoobar Nybegynder
28. juli 2006 - 20:15 #6
svar :)

Jeg synes dog jeg skal dele med arne_v , da han (som altid) tog sig tid og skrev et godt eksempel.
Avatar billede arne_v Ekspert
11. september 2006 - 23:54 #7
di8leva ?
Avatar billede di8leva Nybegynder
23. oktober 2007 - 09:40 #8
Hov, unskyld, jeg har ikke kigger her på länge.... jeg har ikke löst dette problem, fordi jeg fik andet at lave :) Men hvis du arne_v også smider et svar så gir jeg points til jer.
Avatar billede arne_v Ekspert
23. oktober 2007 - 15:20 #9
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester