Zadávanie požiadavky JSON POST pomocou protokolu HttpURLConnection

1. Prehľad

V tomto tutoriáli si ukážeme, ako vytvoriť požiadavku JSON POST pomocou HttpURLConnection.

2. Vytvorenie požiadavky JSON POST s HttpURLConnection

2.1. Vytvor URL Objekt

Vytvorme a URL objekt s cieľovým reťazcom URI, ktorý prijíma údaje JSON pomocou metódy HTTP POST:

URL url = nová adresa URL ("//reqres.in/api/users");

2.2. Otvorte pripojenie

Z vyššie uvedeného URL objekt, môžeme vyvolať openConnection metóda na získanie HttpURLConnection objekt.

Nemôžeme to urobiť okamžite HttpURLConnection priamo, pretože je to abstraktná trieda:

HttpURLConnection con = (HttpURLConnection) url.openConnection ();

2.3. Nastavte metódu žiadosti

Ak chcete odoslať požiadavku POST, budeme musieť nastaviť vlastnosť metódy žiadosti na POST:

con.setRequestMethod ("POST");

2.4. Nastavte parameter Hlavička požiadavky typu obsahu

Nastaviť "Druh obsahu" hlavička žiadosti do „Application / json“ na odoslanie obsahu žiadosti vo formáte JSON. Tento parameter musí byť nastavený na odoslanie tela žiadosti vo formáte JSON.

Ak to neurobíte, server vráti stavový kód HTTP „400-zlá požiadavka“.

con.setRequestProperty ("Content-Type", "application / json; utf-8"); 

Upozorňujeme, že sme spolu s typom obsahu spomenuli aj kódovanie charsetu. To je užitočné, ak sa kódovanie obsahu žiadosti líši od kódovania UTF-8, čo je predvolené kódovanie.

2.5. Nastavte typ formátu odpovede

Nastaviť "Súhlasiť" hlavička žiadosti do „Application / json“ prečítať odpoveď v požadovanom formáte:

con.setRequestProperty ("Prijať", "aplikácia / json");

2.6. Zaistite, aby sa pripojenie použilo na odosielanie obsahu

Ak chcete odoslať obsah žiadosti, povoľte URLConnection objektu doOutput majetok do pravda.

V opačnom prípade nebudeme schopní zapísať obsah do výstupného prúdu pripojenia:

con.setDoOutput (true);

2.7. Vytvorte telo žiadosti

Po vytvorení vlastného reťazca JSON:

Reťazec jsonInputString = "{" name ":" Upendra "," job ":" Programátor "}";

Potrebovali by sme to napísať:

try (OutputStream os = con.getOutputStream ()) {byte [] vstup = jsonInputString.getBytes ("utf-8"); os.write (input, 0, input.length); }

2.8. Prečítajte si odpoveď zo vstupného toku

Získajte vstupný prúd na čítanie obsahu odpovede. Nezabudnite použiť pokus o zdroje na automatické zatvorenie streamu odpovedí.

Prečítajte si celý obsah odpovede a vytlačte posledný reťazec odpovede:

try (BufferedReader br = new BufferedReader (new InputStreamReader (con.getInputStream (), "utf-8")))) {StringBuilder response = new StringBuilder (); Reťazec responseLine = null; while ((responseLine = br.readLine ())! = null) {response.append (responseLine.trim ()); } System.out.println (response.toString ()); }

Ak je odpoveď vo formáte JSON, použite akékoľvek analyzátory JSON tretích strán, napríklad Jackson knižnica, Gsonalebo org.json analyzovať odpoveď.

3. Záver

V tomto článku sme videli, ako vytvoriť žiadosť POST pomocou tela obsahu JSON pomocou HttpURLConnection.

Príslušné útržky kódu ako vždy nájdete na GitHub


$config[zx-auto] not found$config[zx-overlay] not found