Denne pakken inneholder et komplett http klientbiblioteket. Det implementerer for tiden mest av de relevante deler av HTTP / 1.0 og HTTP / 1.1-protokoller, inkludert anmodning metoder HEAD, GET, POST og PUT, og automatisk håndtering av autorisasjon, omdirigering forespørsler og cookies.
Videre følger kodeker klassen inneholder kodere og dekodere for base64, quoted-print, URL-koding, du delvis og multipart / formdata kodinger. Det hele er gratis, og lisensiert under GNU Lesser General Public License (LGPL) (merk at dette ikke er det samme som GPL).
Følgende er kits og dokumentasjon for HTTPClient versjon 0,3-3. Hvis du har noen problemer, bugs, forslag, kommentarer, etc. se info om feilsøking og rapportering problemer. En eldre versjon av disse sidene er også tilgjengelig på japansk, takket være den vennlige innsats av Yuji Kumasaka.
Bruke HTTPClient bør være ganske enkel. Først legge til import uttalelse import HTTPClient. *; til filen (e). Neste du opprette en forekomst av HTTPConnection (du trenger en for hver server du ønsker å snakke med). Forespørsler kan sendes ved hjelp av en av metodene Head (), Get (), Post (), etc i HTTPConnection.
Disse metodene alle returnere en forekomst av HTTPResponse som har metoder for å bruke respons overskrifter (getHeader (), getHeaderAsInt (), etc), ulike respons info (getStatusCode (), getReasonLine (), etc), responsdata (GetData () , GetText (), og getInputStream ()) og noen trailere som kan ha blitt sendt (getTrailer (), getTrailerAsInt (), etc). Følgende er noen eksempler for å komme i gang.
Hvis du vil hente filer fra URL "http://www.myaddr.net/my/file" kan du bruke noe sånt som følgende:
prøve
{
HTTPConnection con = new HTTPConnection ("www.myaddr.net");
HTTPResponse RSP = con.Get ("/ min / fil");
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("mottatt Feil:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
annet
data = rsp.getData ();
RSP = con.Get ("/ another_file");
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("mottatt Feil:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
annet
other_data = rsp.getData ();
}
fangst (IOException IOE)
{
System.err.println (ioe.toString ());
}
fangst (ParseException pe)
{
System.err.println ("Error parsing Content-Type:" + pe.toString ());
}
fangst (ModuleException meg)
{
System.err.println ("Feil håndtering forespørsel:" + me.getMessage ());
}
Dette vil få filene "/ min / Fil" og "/ another_file" og sette innholdet inn i byte [] 's tilgjengelig via GetData (). Merk at du må bare lage en ny HTTPConnection når du sender en forespørsel til en ny server (annen protokoll, vert eller port); selv om du kanskje opprette en ny HTTPConnection for hver forespørsel til samme server dette anbefales ikke, da diverse informasjon om serveren er bufret etter første forespørsel (for å optimalisere senere forespørsler) og vedvarende tilkoblinger brukes når det er mulig (se også Advanced Info).
Å legge inn skjemadata fra en applet tilbake til serveren din kan du bruke noe som dette (forutsatt at du har to felt kalt navn og e-post, der innholdet er lagret i variablene navn og e-post):
prøve
{
NVPair form_data [] = new NVPair [2];
form_data [0] = new NVPair ("navn", navn);
form_data [1] = ny NVPair ("e-post", e);
// Oppmerksom på det praktiske konstruktør for applets
HTTPConnection con = new HTTPConnection (denne);
HTTPResponse RSP = con.Post ("/ cgi-bin / my_script", form_data);
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("mottatt Feil:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
annet
stream = rsp.getInputStream ();
}
fangst (IOException IOE)
{
System.err.println (ioe.toString ());
}
fangst (ModuleException meg)
{
System.err.println ("Feil håndtering forespørsel:" + me.getMessage ());
}
Her responsen data leses i ro og mak via en Input i stedet for alt på en gang inn i en byte [].
Som et annet eksempel, hvis du ønsker å laste opp et dokument til en URL (og serveren støtter http PUT) du kunne gjøre noe sånt som følgende:
prøve
{
URL url = new URL ("http://www.mydomain.us/test/my_file");
HTTPConnection con = new HTTPConnection (url);
HTTPResponse RSP = con.Put (url.getFile (), "Hello World");
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("mottatt Feil:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
annet
text = rsp.getText ();
}
fangst (IOException IOE)
{
System.err.println (ioe.toString ());
}
fangst (ModuleException meg)
{
System.err.println ("Feil håndtering forespørsel:" + me.getMessage ());
}
Prog.varedetaljer:
Kommentarer ikke funnet