Pobieranie danych JSON z URL po https - uwierzytelnianie połączenia

0

W pewniej internetowej gierce warstwa widoku wywołuje publiczne API. Dzięki temu można ją odpytać o zestaw użytkowników i ich dane/parametry. Parametry przeciwników przydają się do ustalania strategii gry. I tak gdy jestem zalogowany i wpiszę w przeglądarkę (w innej karcie): "https://www.taka_tam_strona.pl/api/users/1000/profile", gdzie 1000 to id użytkownika/innego gracza, to otrzymuję jego dane w postaci json-a.
Chciałbym to wykorzystać od ściągania danych innych użytkowników. Napisałem w tym celu klasę:

 
import javax.json.*;
import java.io.InputStream;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class jsonread {
	
	public void getJson(int id) throws Exception {
		
	    String url = "https://www.takie_tam.pl/api/users/"+Integer.toString(id)+"/profile";
	    URL obj = new URL(url);
	    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();	    
	    InputStream in = con.getInputStream();
	    //InputStream in = new FileInputStream("zawodnik.txt");
	    JsonObject gracz = null;
		JsonReader rdr = Json.createReader(in);
		gracz = rdr.readObject();
		rdr.close();	
		if(gracz != null){	
			String nickname = gracz.getString("nickname");
			JsonObject status = gracz.getJsonObject("stats");
			int real_reflex = status.getInt("real_reflex");
			int real_intercept = status.getInt("real_intercept");
			int real_accuracy = status.getInt("real_accuracy");
			int real_strength = status.getInt("real_strength");
			int admiration = status.getInt("admiration");			
			String line = nickname + "\t" 
						+ Integer.toString(admiration) + "\t"
						+ Integer.toString(real_strength) + "\t" 
						+ Integer.toString(real_accuracy) + "\t" 
						+ Integer.toString(real_reflex) + "\t" 
						+ Integer.toString(real_intercept);
			System.out.println(line);			
		}
	}
	
}

Powyższy kod w swojej pierwszej części radzi sobie z czytaniem zawartości stron https a jego druga część radzi sobie z czytaniem JSON-a (testowane na pliku). Niestety, mimo, że wywołując tę metodę jestem zalogowany to otrzymuję komunikat: *"java.io.IOException: Server returned HTTP response code: 401 for URL: https:*www.takie_tam.pl/api/users/1000/profile"//
Co jest nie tak? Wygląda na to, że metoda openConnection() łączyła się ze stroną w oknie innej przeglądarki. Jak uwierzytelnić połączenie?

1

Jeżeli wykonasz DOKŁADNIE ten sam request Postmanem to dostaniesz oczekiwany response ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1