package sklep.klient;

import java.io.File;

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

public class Klient7_RozneKlasy {

	public static void main(String[] args) {
		System.out.println("Startujemy...");
		Client client = ClientBuilder.newClient();
		
		WebTarget root = client.target(Ustawienia.URL_SERWERA);
		
		Response response = root
				.path("products")
				.request()
				.accept(MediaType.APPLICATION_JSON) // albo "application/json", można też bezp. w request(...)
				.buildGet()
				.invoke();

		System.out.println("Otrzymałem response: " + response);
		System.out.println("Status: " + response.getStatus());
		System.out.println("Content-Type: " + response.getMediaType());
		
		if(response.getStatus() != 200) {
			System.out.println("Chyba coś nie tak, więc przerywam.");
			return;
		}

		// Do readEntity przekazuje się klasę, która wskazuje jakiego typu obiekt ma być zwrócony w Javie.
		// Te same dane odebrane z serwera mogą być po stronie klienta przedstawione jako
		// InputStream, Reader, String, tablica bajtów, plik (tworzny jest plik tymczsowy na dysku)
		// a także, co zobaczymy od następnej wersji, obiekt "naszej klasy", np. Product.
		
//		Object obj = response.readEntity(String.class);
//		Object obj = response.readEntity(byte[].class);
		Object obj = response.readEntity(File.class);
		System.out.println(obj);
		
		System.out.println("Gotowe");
	}

}
