Я пишу небольшую программу на Java, которая выполняет вызов rest для конечной точки для проверки идентификатора ссылки. Я написал эту программу двумя различными способами, и каждый из них работает, когда я запускаю ее со своего ПК, но когда я развертываю файл jar на тесте Linux CentOs Server
, я получаю 403 forbidden error
с конечной точки, поэтому я подумал, что, возможно, ip был заблокирован, а затем я попробовал то же самое с curl, и он работал отлично.
В чем может быть проблема? это может быть ошибка версии сертификата ssl?
Путь 1:
public String sendGet(String id) {
restTemplate = new RestTemplate();
log.info("Authorization :::: {}", "Bearer " + this.getApiAuth());
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + this.getApiAuth());
List<MediaType> acceptableMediaTypes = new ArrayList<>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
headers.setAccept(acceptableMediaTypes);
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> httpRequestEntity = new HttpEntity<>(headers);
ResponseEntity<String> exchange = getRestTemplate().exchange(this.getUrl() + id, HttpMethod.GET, httpRequestEntity, String.class);
log.info("Status Code :::: {}", exchange.getStatusCode());
log.info("Status Code :::: {}", exchange.getBody());
return exchange.getBody();
}
Путь 2:
public String sendGet(String message) throws Exception {
infoLogger.info("GOING HERE " + url + message);
java.lang.System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
URL obj = new URL(url + message);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setRequestMethod("GET");
infoLogger.info("Setting Authorization: Bearer " + this.getApiAuth());
con.setRequestProperty("Authorization", "Bearer " +this.getApiAuth());
con.setRequestProperty("Content-Type", MediaType.APPLICATION_JSON_VALUE);
con.setRequestProperty("accept", MediaType.APPLICATION_JSON_VALUE);
int responseCode = con.getResponseCode();
infoLogger.info("\nSending 'GET' request to URL : " + url);
infoLogger.info("Response Code : " + responseCode);
BufferedReader in = null;
String inputLine;
StringBuilder response = new StringBuilder();
if ((200 <= con.getResponseCode()) && (con.getResponseCode() <= 299)) {
if (con.getInputStream() != null) {
in = new BufferedReader(new InputStreamReader(con.getInputStream()));
}
} else if (con.getErrorStream() != null) {
in = new BufferedReader(new InputStreamReader(con.getErrorStream()));
} else {
infoLogger.info("GOT NOTHING ");
}
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());
return response.toString();
}
Итак, я выполнил .getResponseMessage
в соответствии с запросом и получил следующую ошибку:
Доступ запрещен | api.paystack.co использовал Cloudflare, чтобы ограничить accessbody {margin: 0; padding: 0} Пожалуйста, включите куки.
Ошибка 1010 ID луча: 49f12b9b9bb6c5fa & bull; 2019-01-26 07:12:17 UTC
Доступ запрещен Что случилось?
Владелец этого веб-сайта (api.paystack.co) заблокировал ваш доступ на основании подписи вашего браузера (49f12b9b9bb6c5fa-ua21).
Идентификатор луча Cloudflare: 49f12b9b9bb6c5fa & bull; Ваш IP: 104.248.9.123 & bull; Производительность и безопасность Cloudflare
window._cf_translation = {}; `