Avatar billede montago Praktikant
26. januar 2006 - 14:07 Der er 7 kommentarer og
1 løsning

HttpRequest i Java

hej, jeg er igang med et lille projekt, hvor jeg vil grabbe nogle ting over nettet

jeg har brug for at sende request header afsted ("GET...")
hvor jeg sætter Headeren før den sendes. Jeg har kigget efter forskellige metoder og klasser i Javadocs uden held

efter at Headeren er sendt, modtager er det så meningen at jeg modtager en Response header, hvor jeg har brug for at læse nogle værdier

Hvis du kender et eksempel eller gider lave et eksempel jeg kan bruge ville det være super !!

min request header:
"GET", serverpath + " HTTP/1.0"
"Content-type","text/html"

Response header skulle så indeholde:
"Content-length",INT <-- som jeg er intereseret i
Avatar billede arne_v Ekspert
26. januar 2006 - 15:34 #1
URL url = new URL(dinurl);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.connect();

HttpUrlConnection har en metode til at hente content length med - getContentLength()
vil jeg tro
Avatar billede montago Praktikant
26. januar 2006 - 15:38 #2
hej arne (java guden) :)

hvis jeg fx gerne vil sætte nogle specifikke parametre i Headeren...
kan jeg da bruge addHeaderRequest("",""); ??

OG... er det muligt at hente parametre fra reponse ? noget ala.
getResponsePara("") (som return String) ??

indtil videre tak...
Avatar billede arne_v Ekspert
26. januar 2006 - 15:50 #3
du kan adde headers ja - jeg kan ikke huske metode navnet men det rigtigt

hvad mener du med parametre i response ?

du kan lase headers i response udfra header navn

du kan laese response body som InputStream
Avatar billede arne_v Ekspert
26. januar 2006 - 15:50 #4
... men det lyder rigtigt
Avatar billede montago Praktikant
26. januar 2006 - 15:57 #5
hmm... jeg har tænkt mig at gøre noget ala dette :

HttpURLConnection request = (HttpURLConnection) URI.openConnection();
request.addRequestProperty("Icy-MetaData","1");
request.addRequestProperty("UserAgent","WinampMPEG/5.09");
request.connect();
         
response = (HttpURLConnection) request.getRequestProperties();

derefter hente en parameter værdi:

metaInt = Integer.parseInt(response.getResponseHeader("icy-metaint"));
Avatar billede masterbp Nybegynder
03. marts 2006 - 13:11 #6
Hvis den konkrete opgave er lidt mere kompleks end blot at lave et enkelt HTTP GET request, kan du med fordel kigge på HTTPUNIT (http://httpunit.sourceforge.net). Den har jeg brugt i flere omgange til at 'rippe' websites med automatisk.

Eksempel taget fra deres website:

WebConversation wc = new WebConversation();
WebResponse top    = wc.getResponse( "http://www.meterware.com/Frames.html" );
WebResponse summary = wc.getFrameContents( "summary" );
WebLink    link    = summary.getLinkWith( "Cake Recipe" );                   
link.click();                                                   
WebResponse response= wc.getFrameContents( "details" );
Avatar billede montago Praktikant
03. marts 2006 - 15:46 #7
hey masterbo

det jeg vil rippe, er en shoutcast mp3-radio
jeg HAR protokollen... dog skrevet i .net

det jeg er igang med (når jeg får tid) er at oversætte den til Java
Avatar billede montago Praktikant
29. august 2006 - 22:38 #8
lukker
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