Šis paketas suteikia pilną http kliento biblioteką. Šiuo metu įgyvendina daugumą svarbių dalių HTTP / 1.0 ir HTTP / 1.1 protokolai, įskaitant prašymo metodai galvą, GET, POST ir įdėti, ir automatinis tvarkymas leidimo siuntimą prašymus ir slapukus.
Be įtraukti kodekai klasei programuotojams ir dekoderius dėl base64, quoted-printable, URL kodavimo, chunked ir daugiadalis / form-duomenų koduotes. Visa tai yra nemokama, o licencijuota pagal GNU Lesser General Public License (LGPL) (atkreipkite dėmesį, kad tai ne tas pats kaip GPL).
Toliau pateikiami rinkiniai ir dokumentacija httpclient Versija 0.3-3. Jei turite kokių nors problemų, klaidų, pasiūlymai, komentarai ir tt pamatyti apie derinimo ir ataskaitų teikimo problemos info. Senesnė versija šiuose puslapiuose taip pat yra japonų, dėka maloniai pastangų Yuji Kumasaka.
Naudojant httpclient turėtų būti gana paprasta. Pirma pridėti importo pareiškimą importą httpclient. *; į savo bylos (-ų). Kitas kuriate iš HTTPConnection instancijos teismo (jums reikės vieną kiekvienam serveriui norite kalbėti). Prašymai gali būti siunčiami vienu iš metodų vadovo (), gauti () Post (), tt HTTPConnection.
Šie metodai visi grąžinti į HTTPResponse kuri turi metodus gauti atsakymo antraštes (getHeader (), getHeaderAsInt (), ir tt), įvairūs atsakas info (getStatusCode (), getReasonLine (), ir tt), duomenimis, atsakas (getData instancijos teismo () , Gettext () ir getInputStream ()) ir bet kokios priekabos, kuri galėjo būti siunčiami (getTrailer (), getTrailerAsInt () ir tt). Toliau pateikiami kai kurie pavyzdžiai pradėti.
Norėdami gauti failus iš URL "http://www.myaddr.net/my/file" galite naudoti kažką panašaus taip:
pabandyti
{
HTTPConnection pa = nauji HTTPConnection ("www.myaddr.net");
HTTPResponse RSP = con.Get ("/ mano / failą");
jei (rsp.getStatusCode ()> = 300)
{
System.err.println ("Gauta Klaida:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
kitas
duomenys = rsp.getData ();
RSP = con.Get ("/ another_file");
jei (rsp.getStatusCode ()> = 300)
{
System.err.println ("Gauta Klaida:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
kitas
other_data = rsp.getData ();
}
laimikis (IOException TEB)
{
System.err.println (ioe.toString ());
}
laimikis (ParseException PE)
{
System.err.println ("Klaida apdorojant Content-Type:" + pe.toString ());
}
laimikis (ModuleException man)
{
System.err.println ("Klaida apdorojant užklausą:" + me.getMessage ());
}
Tai bus gauti failus "/ mano / File" ir "/ another_file" ir įdėti savo turinį į baitas [] 's prieinamos getData (). Atkreipkite dėmesį, kad jums reikia tik sukurti naują HTTPConnection Siųsdama prašymą į naują serverį (skiriasi protokolas, kompiuterio ar uostas); nors jums gali sukurti naują HTTPConnection už kiekvieną prašymą tame pačiame serveryje tai nerekomenduojama, nes įvairios informacijos apie serverį talpyklos po pirmojo prašymo (optimizuoti vėlesnius prašymus) ir nuolatiniai ryšiai yra naudojamas, kai tik įmanoma (taip pat žr Išplėstinė info).
Kad galėtumėte formos duomenis iš programėlės į jūsų serverį galite naudoti kažką panašaus į tai (jei turite du laukus, vadinamų vardas ir elektroninio pašto, kurio turinys yra saugomi kintamieji vardą ir elektroninio pašto):
pabandyti
{
NVPair form_data [] = new NVPair [2];
form_data [0] = new NVPair ("pavadinimas", vardas);
form_data [1] = new NVPair ("e-mail", e-paštas);
// Dėmesį į savitarnos konstruktorius programėles
HTTPConnection pa = nauji HTTPConnection (tai);
HTTPResponse RSP = con.Post ("/ cgi-bin / my_script", form_data);
jei (rsp.getStatusCode ()> = 300)
{
System.err.println ("Gauta Klaida:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
kitas
srautas = rsp.getInputStream ();
}
laimikis (IOException TEB)
{
System.err.println (ioe.toString ());
}
laimikis (ModuleException man)
{
System.err.println ("Klaida apdorojant užklausą:" + me.getMessage ());
}
Čia duomenys atsakas skaityti laisvalaikiu per InputStream vietoj visus iš karto į baitas [].
Kitas pavyzdys, jei norite įkelti dokumentą į URL (ir serveris palaiko http įdėti), galite tai padaryti kažką panašaus taip:
pabandyti
{
URL URL = nauji adresas ("http://www.mydomain.us/test/my_file");
HTTPConnection pa = nauji HTTPConnection (URL);
HTTPResponse RSP = con.Put (url.getFile (), "Hello World");
jei (rsp.getStatusCode ()> = 300)
{
System.err.println ("Gauta Klaida:" + rsp.getReasonLine ());
System.err.println (rsp.getText ());
}
kitas
Teksto = rsp.getText ();
}
laimikis (IOException TEB)
{
System.err.println (ioe.toString ());
}
laimikis (ModuleException man)
{
System.err.println ("Klaida apdorojant užklausą:" + me.getMessage ());
}
Programinė detalės:
Komentarai nerastas