Article View: be.comp.programming
Article #3629Re: iemand ervaring met HttpURLConnection? (java)
From: An Ony
Date: Wed, 19 Nov 2003 11:26
Date: Wed, 19 Nov 2003 11:26
98 lines
4285 bytes
4285 bytes
"TRAX" <Stijn.Verspeet@pandora[delete.this].be> schreef in bericht
news:9jwub.30757$oA3.1084528@phobos.telenet-ops.be...
> Ik zou dus graag een browser maken in Java (ttz, projectje voor school:
> netwerken en Java gecombineerd). Heb ik dan HttpURLConnection nodig?
> (JEditorPane mag ik niet gebruiken, zou te simpel zijn). Met die klasse
kan
> ik al een beetje overweg: connectietje maken, serveresponse weergeven maar
> daar stopt het. Ik vermoed dat je dmv een stream de inhoud van de URL zal
> moeten omzetten in een HTML document en dat dan parsen dmv de daartoe
> bestemde klassen (of is dit wat te simplistisch?). Nu, hier zit het
> probleem: hoe doe ik dat? kan iemand mij een concreet voorbeeldje geven
> hierover?
> Ik ben een Java newbie en heb al op de forums van sun gezocht ook (en
> google) maar ik zie nergens bruikbare code staan.
>
Hier is een textbrowser die ik eens geschreven heb, kan je misschien
gebruiken.
Ik weet niet of java klassen heeft die HTML kan parsen volgens bepaalde
standaarden. Een XML-parser zit er wel in, dus misschien heb je geluk, nog
niet zelf gekeken.
=============================================================
import java.io.*;
import java.net.*;
public class HttpTextBrowser {
public static void main(String[] args) throws IOException {
URL url = null;
String host = null;
int port = 0;
Socket c = null;
PrintWriter out = null;
BufferedReader input =null;
if( args.length != 1){
System.out.println("Usage : java HttpTextBrowser URL");
System.exit(1);
}
try {
/* Vul de variabelen url, host en port in met de informatie vanop de
commandolijn */
url = new URL(args[0]);
host = url.getHost();
port = url.getPort();
if (port<0) port = 80;
/* Maak een Socket aan met de correcte host en port */
c = new Socket(host,port);
/* Initialiseer de PrintWriter out en de BufferedReader input */
out = new PrintWriter(c.getOutputStream());
input = new BufferedReader(new InputStreamReader(c.getInputStream()));
}
/* Vang de mogelijke excepties op, en stop het programma indien er
een exceptie optreedt */
catch (MalformedURLException e) {
System.err.println(e+ "\nURL is van de vorm http://<host>:<poort>");
System.exit(1);
}
catch (IOException e) {
System.err.println(e);
System.exit(2);
}
catch (Exception e) {
System.err.println(e);
System.exit(3);
}
/* Bouw de request string op, vergeet de \n\r niet ! */
String fromUser = "GET http://"+host+url.getPath()+"
HTTP/1.1\r\nHost: \r\n\r\n";
System.out.println(fromUser);
out.println(fromUser);
out.flush();
/* Lees de eerste lijn van het antwoord van de server (van de input
stream) */
String fromServer = input.readLine();
while (fromServer != null){
System.out.print(fromServer+"\r\n");
/* Lees een volgende lijn in van het antwoord */
fromServer = input.readLine();
}
/* Sluit de out en input stroom en nadien de socket */
out.close();
input.close();
c.close();
}
}
=============================================================
Technical Details
Message-ID:
<bpfiob$tuu$1@gaudi2.UGent.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.vmunix.org!aotearoa.belnet.be!news.belnet.be!news.UGent.be!not-for-mailReferences:
<9jwub.30757$oA3.1084528@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,2e18ba1c2bcd0b63 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-11-19 03:32:18 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.vmunix.org!aotearoa.belnet.be!news.belnet.be!news.UGent.be!not-for-mail From: "An Ony" <nowhere@somewhere.net> Newsgroups: be.comp.programming Subject: Re: iemand ervaring met HttpURLConnection? (java) Date: Wed, 19 Nov 2003 12:26:53 +0100 Organization: Ghent University Lines: 100 Message-ID: <bpfiob$tuu$1@gaudi2.UGent.be> References: <9jwub.30757$oA3.1084528@phobos.telenet-ops.be> NNTP-Posting-Host: vpne178.ugent.be X-Trace: gaudi2.UGent.be 1069239883 30686 157.193.28.178 (19 Nov 2003 11:04:43 GMT) X-Complaints-To: helpdesk@dict.ugent.be NNTP-Posting-Date: Wed, 19 Nov 2003 11:04:43 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165