Foreta en JSON POST-forespørsel med HttpURLConnection
1. Oversikt
I denne veiledningen vil vi demonstrere hvordan du lager en JSON POST-forespørsel ved hjelp av HttpURLConnection.
2. Bygg en JSON POST-forespørsel med HttpURLConnection
2.1. Lage en URL Gjenstand
La oss lage en URL objekt med mål-URI-strengen som godtar JSON-dataene via HTTP POST-metoden:
URL url = ny URL ("//reqres.in/api/users");
2.2. Åpne en tilkobling
Fra ovennevnte URL objekt, kan vi påberope oss openConnection metode for å få HttpURLConnection gjenstand.
Vi kan ikke instantiere HttpURLConnection direkte, da det er en abstrakt klasse:
HttpURLConnection con = (HttpURLConnection) url.openConnection ();
2.3. Angi forespørselsmetoden
For å sende en POST-forespørsel må vi sette forespørselsmetodeegenskapen til POST:
con.setRequestMethod ("POST");
2.4. Angi forespørsel om innholdstype-parameter
Sett "innholdstype" be overskrift til “Applikasjon / json” å sende forespørselens innhold i JSON-skjema. Denne parameteren må stilles inn for å sende forespørselen i JSON-format.
Hvis dette ikke gjøres, returnerer serveren HTTP-statuskode "400-bad forespørsel".
con.setRequestProperty ("Content-Type", "application / json; utf-8");
Vær også oppmerksom på at vi har nevnt tegnsettkoding sammen med innholdstype. Dette er nyttig hvis forespørselens innholdskoding er forskjellig fra UTF-8-koding, som er standardkodingen.
2.5. Angi svarformatstype
Sett "Aksepterer" be overskrift til “Applikasjon / json” for å lese svaret i ønsket format:
con.setRequestProperty ("Godta", "applikasjon / json");
2.6. Sørg for at tilkoblingen blir brukt til å sende innhold
For å sende innhold om forespørsel, la oss aktivere URLtilkobling objektets doOutput eiendom til ekte.
Ellers kan vi ikke skrive innhold til tilkoblingsutgangsstrømmen:
con.setDoOutput (true);
2.7. Opprett forespørselsorganet
Etter å ha opprettet en tilpasset JSON-streng:
String jsonInputString = "{" name ":" Upendra "," job ":" Programmer "}";
Vi trenger å skrive det:
prøv (OutputStream os = con.getOutputStream ()) {byte [] input = jsonInputString.getBytes ("utf-8"); os.write (input, 0, input.length); }
2.8. Les svaret fra Input Stream
Få inngangsstrømmen for å lese svarinnholdet. Husk å bruke prøv-med-ressurser for å lukke svarstrømmen automatisk.
Les gjennom hele svarinnholdet, og skriv ut den endelige svarstrengen:
prøv (BufferedReader br = new BufferedReader (new InputStreamReader (con.getInputStream (), "utf-8"))) {StringBuilder response = new StringBuilder (); StrengresponsLine = null; mens ((responsLine = br.readLine ())! = null) {respons.append (responsLine.trim ()); } System.out.println (respons.toString ()); }
Hvis svaret er i JSON-format, bruk eventuelle tredjeparts JSON-parsere som Jackson bibliotek, Gson, eller org.json for å analysere responsen.
3. Konklusjon
I denne artikkelen så vi hvordan du lager en POST-forespørsel med JSON-innholdsdel ved hjelp av HttpURLConnection.
Som alltid kan du finne relevante kodebiter på GitHub