Tento balíček obsahuje kompletní http klientskou knihovnu. To v současné době realizuje většinu příslušných částí HTTP / 1.0 a HTTP / 1.1 protokoly, včetně metody požadavku HEAD, GET, POST a PUT, a automatická manipulace povolení, žádosti o přesměrování, a cookies.
Navíc součástí třída kodeky obsahuje kodéry a dekodéry pro base64, quoted-printable, URL-kódování, blokového a multipart / form-data kódování. Celá věc je zdarma, a licencované pod GNU Lesser General Public License (LGPL), (všimněte si, že to není stejné jako GPL).
Následovat jsou sady a dokumentaci pro HTTPClient verzi 0,3-3. Pokud máte nějaké problémy, chyby, návrhy, komentáře, atd. Naleznete informace o ladění a problémech vykazování. Starší verze těchto stránkách jsou také k dispozici v japonštině, díky laskavých úsilí Yuji Kumasaka.
Použití HTTPClient by mělo být poměrně jednoduché. Nejprve přidejte příkaz import dovoz HTTPClient *.; do souboru (y). Dále můžete vytvořit instanci HTTPConnection (budete potřebovat jeden pro každý server, který chcete mluvit). Žádosti pak může být odeslána pomocí jednoho z vedoucího metod (), Get (), Post (), atd v HTTPConnection.
Všechny tyto metody vrací instanci HttpResponse který má metody pro přístup k hlavičky odpovědi (getHeader (), getHeaderAsInt (), atd), různé info odezva (getStatusCode (), getReasonLine (), atd), data odezvy (getData () , Gettext (), a getInputStream ()) a všechny přívěsy, které by byly odeslány (getTrailer (), getTrailerAsInt (), atd). Následují některé příklady, jak začít.
Chcete-li načíst soubory z URL "http://www.myaddr.net/my/file", můžete použít něco jako následující:
vyzkoušet
{
HTTPConnection con = new HTTPConnection ("www.myaddr.net");
HttpResponse RSP = con.Get ("/ my / file");
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("Přijaté Chyba:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
jiný
data = rsp.getData ();
RSP = con.Get ("/ another_file");
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("Přijaté Chyba:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
jiný
other_data = rsp.getData ();
}
catch (IOException IOE)
{
System.err.println (ioe.toString ());
}
catch (ParseException pe)
{
System.err.println ("Chyba při parsování Content-Type:" + pe.toString ());
}
catch (ModuleException me)
{
System.err.println ("požadavek manipulace Chyba:" + me.getMessage ());
}
To bude mít soubory "/ moje / souborů" a "/ another_file" a dát svůj obsah do byte [] 'je přístupné přes getData (). Všimněte si, že budete potřebovat pouze vytvořit novou HTTPConnection při odesílání požadavek na nový server (jiný protokol, hostitele nebo port); i když si může vytvořit nový HTTPConnection pro každý požadavek na stejný server to nedoporučuje, protože různé informace o serveru mezipaměti po první žádosti (pro optimalizaci následné požadavky) a trvalé spojení se použije vždy, když je to možné (viz také pokročilé Info).
Chcete-li odeslat data formuláře z appletu zpět na server můžete použít něco takového (za předpokladu, že máte dvě pole s názvem jméno a e-mail, jehož obsah jsou uloženy na jméno a e-mail proměnné):
vyzkoušet
{
NVPair form_data [] = new NVPair [2];
form_data [0] = nový NVPair ("jméno", název);
form_data [1] = nový NVPair ("E-mail", e-mail);
// Všimněte si pohodlí konstruktor pro applety
HTTPConnection con = new HTTPConnection (this);
HttpResponse RSP = con.Post ("/ cgi-bin / my_script", form_data);
if (rsp.getStatusCode ()> = 300)
{
System.err.println ("Přijaté Chyba:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
jiný
proud = rsp.getInputStream ();
}
catch (IOException IOE)
{
System.err.println (ioe.toString ());
}
catch (ModuleException me)
{
System.err.println ("požadavek manipulace Chyba:" + me.getMessage ());
}
Zde Data odezvy je čtení ve volném čase prostřednictvím InputStream namísto najednou do byte [].
Jako další příklad, pokud chcete nahrát dokument na adresu URL (a server podporuje http PUT) byste mohli udělat něco jako následující:
vyzkoušet
{
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 ("Přijaté Chyba:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
jiný
text = rsp.getText ();
}
catch (IOException IOE)
{
System.err.println (ioe.toString ());
}
catch (ModuleException me)
{
System.err.println ("požadavek manipulace Chyba:" + me.getMessage ());
}
Podrobnosti Software:
Komentáře nebyl nalezen