Avatar billede daniboy Nybegynder
18. marts 2003 - 13:43 Der er 1 løsning

Problem med hentning af HTML sources

Hejsa

Jeg har forsøgt at eksperimentere lidt med at hente sider som en browser gør
det... Men det vil ikke rigtigt lykkedes for mig selv om jeg har fået sider
der nøjagtigt beskriver hvordan man sender f.eks. en cookie til bage i den
næste request til serveren....

Når jeg kontakter den side jeg gerne vil hente alt indhold fra inden for
nogle frames får jeg som det første dette header svar i den første request
til www.hattrick.org

Server=Microsoft-IIS/5.0
Date=Tue, 18 Mar 2003 12:29:43 GMT
Location=/Common/default.asp
Content-Length=140
Content-Type=text/html
Set-Cookie=ASPSESSIONIDGQQQQWVC=NNIKNEHCOEDEOAPGMAACDNJL; path=/
Cache-control=private

Jeg forsøger så at hente en anden side inden for den anden frame hvor jeg
sender den ovenstående cookie tilbage i samme request men der får jeg noget
der heder en session timeout som når man har lukket browseren... jeg trækker
cookie informationen ud i en string der heder cookieK og cookieV som jeg
sender med tilbage i min næste request...

Jeg håber virkelig der er nogen derude der kan hjælpe mig med at løse
problemet med hvorfor jeg får session timeout....

Herunder er noget rodet kode håber der er nogen der kan se hvorfor det ikke virker...

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.MalformedURLException;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;

public class CodeTest {

    public static void main(String[] args) {

    URL myURL;
    HttpURLConnection conn = null;

    try {
    myURL = new URL("http://www.hattrick.org");
    conn = (HttpURLConnection) myURL.openConnection();
    } catch(MalformedURLException e) {
        System.err.println(e.toString());
    } catch(IOException e) {
        System.err.println(e.toString());
    }
   
    int n=1; // n=0 has no key, and the HTTP return status in the value field
    boolean done = false;
    while (!done){
        String headerKey = conn.getHeaderFieldKey(n);
        String headerVal = conn.getHeaderField(n);
        if (headerKey!=null || headerVal!=null) {
        System.out.println(headerKey+"="+headerVal);       
        } else {
        done = true;
        }
        n++;
    }
   
    // Henter Hele Strengen representeret af "Set-Cookie"
    String cookie = conn.getHeaderField("Set-Cookie");
    System.out.println(cookie);

    // Trækker den brugbare del af cookien før ; ud
    int index = cookie.indexOf(";");
    if(index >= 0) cookie = cookie.substring(0, index);
    System.out.println(cookie);

    // Her Skiller Vi key fra Value i Coookien
    String cookieK = null;
    String cookieV = null;
    index = cookie.indexOf("=");
    if(index >= 0) cookieK = cookie.substring(0, index);
    index++;
    cookieV = cookie.substring(index);

    System.out.println(cookieK);
    System.out.println(cookieV);

    // Nu skal vi sende cookien tilbage i en ny request til serveren
    URL menuURL = null;
    URLConnection aConn = null;
    InputStream bodyInputStream = null;
    InputStreamReader bodyInputStreamReader = null;
    try {
    menuURL = new URL("http://www.hattrick.org/Common/logo.asp");
    aConn = menuURL.openConnection();

    } catch(MalformedURLException e) {
        System.out.println(e.toString());
    } catch(IOException e) {
        System.out.println(e.toString());
    }
    aConn.setRequestProperty(cookieK, cookieV);
   
    n=1; // n=0 has no key, and the HTTP return status in the value field
    done = false;
    while (!done){
        String headerKey = aConn.getHeaderFieldKey(n);
        String headerVal = aConn.getHeaderField(n);
        if (headerKey!=null || headerVal!=null) {
        System.out.println(headerKey+"="+headerVal);       
        } else {
        done = true;
        }
        n++;
    }

    try {
    bodyInputStream = aConn.getInputStream();

    } catch(IOException e) {
        System.out.println(e.toString());
    }

    }
}
Avatar billede daniboy Nybegynder
19. marts 2003 - 14:33 #1
Erm... no responce :D

Men har selv løst problemet så thx anyway...
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