Commit ad763901 by Patryk Czarnik

Klient REST za pomocą URL

parent ebccd06b
package sklep.klient;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
public class Klient01_URL {
public static void main(String[] args) {
// Najprostszy sposób w Javie, aby pobrać dane z adresu URL, to użyć klasy URL.
try {
URL url = new URL("http://localhost:8080/PC26-RestSerwer/products.json/1");
System.out.println("Odczytuję dane...");
try (InputStream input = url.openStream()) {
// teraz z inputa możemy czytać ciąg bajtów
// ja przerzucę bajty czytane z sieci bezpośrednio do System.out
// (w przypadku obcego serwisu może być to niebezpieczne)
input.transferTo(System.out);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package sklep.klient;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import jakarta.json.*;
public class Klient02_URL_JSON {
/* W tej wersji pobieramy dane JSON podstawowym sposobem URL, ale pobrane dane parsujemy za pomocą narzędzi
z biblioteki Jakarta JSON P - w tym projekcie dostępnej dzięki zależności eclipse parsson.
*/
public static void main(String[] args) {
try {
URL url = new URL(Ustawienia.ADRES_USLUGI + "/products.json");
try(InputStream inputStream = url.openStream();
JsonReader reader = Json.createReader(inputStream)) {
// pierwszym znakiem w odpowiedzi jest nawias kwadratowy, czyli należy wczytać tablicę jsonową
JsonArray array = reader.readArray();
// System.out.println(array);
for(JsonValue jsonValue : array) {
//System.out.println(jsonValue);
JsonObject jsonObject = jsonValue.asJsonObject();
System.out.println(jsonObject.getString("productName"));
System.out.println(" opis: " + jsonObject.getString("description", ""));
System.out.println(" cena: " + jsonObject.getJsonNumber("price").bigDecimalValue());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package sklep.klient;
public class Ustawienia {
public static final String ADRES_USLUGI = "http://localhost:8080/PC26-RestSerwer";
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment