package ogloszenia.klient;

import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;

public class Klient12 {

	public static void main(String[] args) {
		Client client = ClientBuilder.newClient();
		WebTarget root = client.target(Ustawienia.URI_SERWISU);

		System.out.println("Zaraz wyślę zapytanie...");
		Response response = root.path("/ogloszenia.json")
			.request()
			.buildGet()
			.invoke();

		// Ogólne dane odpowiedzi:
		System.out.println("Odebrałem odpowiedź: " + response);
		System.out.println("status: " + response.getStatus());
		System.out.println("typ danych: " + response.getMediaType());

		// Teraz wczytamy treść odpowiedzi - robi się to _jednorazowo_ wywołując readEntity:
		try (InputStream daneDoOdczytania = response.readEntity(InputStream.class)) {
			long ileBajtow = Files.copy(daneDoOdczytania, Paths.get("dane12.json"), StandardCopyOption.REPLACE_EXISTING);
			System.out.println("Gotowe. Skopiowano " + ileBajtow + " bajtów.");
		} catch (IOException e) {
			System.out.println("IOException podczas kopiowania danych do pliku");
		}

		System.out.println("Koniec zabawy");
	}

}
