Получение ошибки в коде Java, преобразованном из Python [закрыто] ⇐ JAVA
-
Гость
Получение ошибки в коде Java, преобразованном из Python [закрыто]
Этот URL-адрес содержит код Python, который получает пользователей-администраторов из zscaler. https://help.zscaler.com/cloud-branch-c ... AdminUsers Мне нужно использовать это в Java, преобразовать из Python в Java, но получить 401. Может ли кто-нибудь помочь мне с кодом Java
Преобразовал Python в Java, но это не сработало. Это работает один раз, но после того, как они начинают получать 401.
импортировать java.io.BufferedReader;
импортировать java.io.InputStreamReader;
импортировать java.io.OutputStream;
импортировать java.net.CookieHandler;
импортировать java.net.CookieManager;
импортировать java.net.CookiePolicy;
импортировать java.net.HttpURLConnection;
импортировать java.net.URL;
импортировать java.security.SecureRandom;
импортировать сертификат java.security.cert.X509Certificate;
импортировать java.util.Date;
импортировать javax.net.ssl.HttpsURLConnection;
импортировать javax.net.ssl.SSLContext;
импортировать javax.net.ssl.TrustManager;
импортировать javax.net.ssl.X509TrustManager;
публичный класс ZsApi {
public static String obfuscateApiKey(String apiKey, String timestamp) {
String high = timestamp.substring(timestamp.length() - 6);
String low = Integer.toString(Integer.parseInt(high) >> 1);
String obfuscatedApiKey = "";
while (low.length() < 6) {
низкий = "0" + низкий;
for (int i = 0; i < high.length(); i++) {
obfuscatedApiKey += apiKey.charAt(Integer.parseInt(Character.toString(high.charAt(i))));
for (int j = 0; j < low.length(); j++) {
obfuscatedApiKey += apiKey.charAt(Integer.parseInt(Character.toString(low.charAt(j))) + 2);
return """ + obfuscatedApiKey + """;
public static void main(String[] args) выдает исключение {
длинная временная метка = новая дата().getTime();
String timestampString = Long.toString(timestamp);
String apiKey = "";
System.out.println(apiKey);
String apiKeyObfuscate = obfuscateApiKey(apiKey, timestampString);
final String POST_PARAMS = "{"username":"","password":"","apiKey":" + apiKeyObfuscate + ","timestamp":" + timestamp +"}";
System.out.println(POST_PARAMS);
//Пытался отключить проверку сертификата SSL, но не сработало должным образом.
/*
Контекст SSLContext = SSLContext.getInstance("TLSv1.2");
TrustManager[]trustManager = новый TrustManager[] {
новый X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
вернуть новый сертификат X509[0];
public void checkClientTrusted (сертификат X509Certificate[], String str) {
public void checkServerTrusted (сертификат X509Certificate[], String str) {
};
context.init(null,trustManager, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
*/
//System.setProperty("javax.net.ssl.trustStore", "NULL");
URL obj = новый URL("https://zsapi.domain/api/v1/authenticatedSession");
HttpURLConnection postConnection = (HttpURLConnection) obj.openConnection();
postConnection.setRequestMethod("POST");
postConnection.setRequestProperty("Content-Type", "application/json");
postConnection.setDoOutput(true);
OutputStream os = postConnection.getOutputStream();
os.write(POST_PARAMS.getBytes());
os.flush();
os.close();
int responseCode = postConnection.getResponseCode();
System.out.println("Код ответа POST: " + responseCode);
System.out.println("Ответное сообщение POST: " + postConnection.getResponseMessage());
BufferedReader in = new BufferedReader(new InputStreamReader(postConnection.getInputStream()));
Строка inputLine;
Ответ StringBuffer = новый StringBuffer();
while ((inputLine = in .readLine()) != null) {
response.append(inputLine);
в .close();
System.out.println(response.toString());
Этот URL-адрес содержит код Python, который получает пользователей-администраторов из zscaler. https://help.zscaler.com/cloud-branch-c ... AdminUsers Мне нужно использовать это в Java, преобразовать из Python в Java, но получить 401. Может ли кто-нибудь помочь мне с кодом Java
Преобразовал Python в Java, но это не сработало. Это работает один раз, но после того, как они начинают получать 401.
импортировать java.io.BufferedReader;
импортировать java.io.InputStreamReader;
импортировать java.io.OutputStream;
импортировать java.net.CookieHandler;
импортировать java.net.CookieManager;
импортировать java.net.CookiePolicy;
импортировать java.net.HttpURLConnection;
импортировать java.net.URL;
импортировать java.security.SecureRandom;
импортировать сертификат java.security.cert.X509Certificate;
импортировать java.util.Date;
импортировать javax.net.ssl.HttpsURLConnection;
импортировать javax.net.ssl.SSLContext;
импортировать javax.net.ssl.TrustManager;
импортировать javax.net.ssl.X509TrustManager;
публичный класс ZsApi {
public static String obfuscateApiKey(String apiKey, String timestamp) {
String high = timestamp.substring(timestamp.length() - 6);
String low = Integer.toString(Integer.parseInt(high) >> 1);
String obfuscatedApiKey = "";
while (low.length() < 6) {
низкий = "0" + низкий;
for (int i = 0; i < high.length(); i++) {
obfuscatedApiKey += apiKey.charAt(Integer.parseInt(Character.toString(high.charAt(i))));
for (int j = 0; j < low.length(); j++) {
obfuscatedApiKey += apiKey.charAt(Integer.parseInt(Character.toString(low.charAt(j))) + 2);
return """ + obfuscatedApiKey + """;
public static void main(String[] args) выдает исключение {
длинная временная метка = новая дата().getTime();
String timestampString = Long.toString(timestamp);
String apiKey = "";
System.out.println(apiKey);
String apiKeyObfuscate = obfuscateApiKey(apiKey, timestampString);
final String POST_PARAMS = "{"username":"","password":"","apiKey":" + apiKeyObfuscate + ","timestamp":" + timestamp +"}";
System.out.println(POST_PARAMS);
//Пытался отключить проверку сертификата SSL, но не сработало должным образом.
/*
Контекст SSLContext = SSLContext.getInstance("TLSv1.2");
TrustManager[]trustManager = новый TrustManager[] {
новый X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
вернуть новый сертификат X509[0];
public void checkClientTrusted (сертификат X509Certificate[], String str) {
public void checkServerTrusted (сертификат X509Certificate[], String str) {
};
context.init(null,trustManager, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
*/
//System.setProperty("javax.net.ssl.trustStore", "NULL");
URL obj = новый URL("https://zsapi.domain/api/v1/authenticatedSession");
HttpURLConnection postConnection = (HttpURLConnection) obj.openConnection();
postConnection.setRequestMethod("POST");
postConnection.setRequestProperty("Content-Type", "application/json");
postConnection.setDoOutput(true);
OutputStream os = postConnection.getOutputStream();
os.write(POST_PARAMS.getBytes());
os.flush();
os.close();
int responseCode = postConnection.getResponseCode();
System.out.println("Код ответа POST: " + responseCode);
System.out.println("Ответное сообщение POST: " + postConnection.getResponseMessage());
BufferedReader in = new BufferedReader(new InputStreamReader(postConnection.getInputStream()));
Строка inputLine;
Ответ StringBuffer = новый StringBuffer();
while ((inputLine = in .readLine()) != null) {
response.append(inputLine);
в .close();
System.out.println(response.toString());
Мобильная версия