티스토리 뷰
*발단
특정 기관의 api를 호출한 결과 데이터를 DB에 삽입하여 관리하고 있으나 특정 시점부터 데이터가 들어오지 않는 현상이 발생.
*원인 파악
exception을 제대로 걸지 않은 것인지 log레벨에 맞지 않은 것인지 log 파일에서는 관련된 부분을 확인할 수 없었음.
아래 소스와 같이 로컬상에 api 끌어오는 부분을 구현하여 결과값을 output 하는 것으로 결정.
[호출 테스트]
//예시용도 호출 api url
String fullUrl = "http://jckim-dev.tistory.com/apiTest";
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
BufferedReader tempBufferedReader = null;
BufferedReader bufferedReader = null;
InputStream inputStream = null;
conn.setDoOutput(true);
conn.setRequestMethod("GET");
tempBufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "euc-kr"));
String tempStr = "";
StringBuilder bufferedStr = new StringBuilder();
while ((tempStr = tempBufferedReader.readLine()) != null) {
bufferedStr.append(tempStr).append("\n");
}
inputStream = new ByteArrayInputStream(bufferedStr.toString().getBytes());
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
System.out.println("===============================");
System.out.println(bufferedStr.toString());
[조치 전 호출 결과]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>301 Moved Permanently</title>
</head>
<body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://jckim-dev.tistory.com/apiTest">here</a>.</p>
</body>
</html>
문제가 되었던 api를 호출하였을 때 301 응답 코드가 발생한 것을 확인하였고 친절하게 어떠한 URL로 변경되었다고 메시지까지 확인할 수 있었음.
메시지는 기존 url의 콘텐츠는 새로운 url로 옮겨졌으니 해당 url로 호출하라는 내용이었음.
˚http 응답 코드 301 (영구 이동): 요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다. 참조자료
*조치
해당 기관이 http에서 https로 제공하도록 변경된 것으로 확인.
api를 호출하는 로직에서는 해당 결과를 확인할 수 없었기 때문에 원인 파악에 어려움이 있었음.
api url을 기존 http에서 https로 호출.
추가적으로 방화벽을 관리하고 있다면 https로 호출 시 443 포트가 열려있는지 확인 필요.
[조치 후 결과]
<?xml version="1.0" encoding="UTF-8" ?>
<document>
<root>
<result>
...
...
...
</result>
</root>
</document>
'JAVA' 카테고리의 다른 글
[JAVA] javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure (2) (0) | 2021.07.08 |
---|---|
[java] javax.net.ssl.SSLHandshakeException : Received fatal alert : handshake_failure (0) | 2021.06.08 |
[java] SSLException: Received fatal alert: protocol_version 에러 해결 (0) | 2020.08.15 |
[java] HttpUrlConnection 안전하게 사용하기 (0) | 2020.08.02 |
[JAVA] Garbage Collection (0) | 2020.06.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- parse
- jaxen
- Git
- gradle
- 컨테이너
- docker
- Eclipse
- SpringBoot
- WAS
- html
- IMAGE
- Linux
- JPA
- mybatis
- web
- 깨짐
- jQuery
- TLS
- 이벤트발생
- spring
- JSON
- SSL
- Oracle
- btye
- SQL
- 날짜
- React
- vscode
- Windows
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함