|
|
|
@ -1,8 +1,16 @@
|
|
|
|
|
package com.palnet.biz.api.bas.flight.service; |
|
|
|
|
|
|
|
|
|
import java.io.BufferedReader; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.io.InputStream; |
|
|
|
|
import java.io.InputStreamReader; |
|
|
|
|
import java.net.HttpURLConnection; |
|
|
|
|
import java.net.MalformedURLException; |
|
|
|
|
import java.net.URL; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Arrays; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
import com.palnet.comn.code.ErrorCode; |
|
|
|
@ -520,4 +528,55 @@ public class BasFlightService {
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//지역 검색
|
|
|
|
|
public String searchArea(String apiUrl, Map<String, String> requestHeaders) { |
|
|
|
|
HttpURLConnection con = connect(apiUrl); |
|
|
|
|
try { |
|
|
|
|
con.setRequestMethod("GET"); |
|
|
|
|
for(Map.Entry<String, String> header :requestHeaders.entrySet()) { |
|
|
|
|
con.setRequestProperty(header.getKey(), header.getValue()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int responseCode = con.getResponseCode(); |
|
|
|
|
if(responseCode == HttpURLConnection.HTTP_OK) { |
|
|
|
|
return readBody(con.getInputStream()); |
|
|
|
|
} else { |
|
|
|
|
return readBody(con.getErrorStream()); |
|
|
|
|
} |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException("API 요청과 응답 실패", e); |
|
|
|
|
} finally { |
|
|
|
|
con.disconnect(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public HttpURLConnection connect(String apiUrl) { |
|
|
|
|
try { |
|
|
|
|
URL url = new URL(apiUrl); |
|
|
|
|
return (HttpURLConnection)url.openConnection(); |
|
|
|
|
} catch (MalformedURLException e) { |
|
|
|
|
throw new RuntimeException("API URL이 잘못되었습니다. : " + apiUrl, e); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException("연결이 실패했습니다. : " + apiUrl, e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String readBody(InputStream body) { |
|
|
|
|
InputStreamReader streamReader = new InputStreamReader(body); |
|
|
|
|
|
|
|
|
|
try(BufferedReader lineReader = new BufferedReader(streamReader)) { |
|
|
|
|
StringBuilder responseBody = new StringBuilder(); |
|
|
|
|
|
|
|
|
|
String line; |
|
|
|
|
while ((line = lineReader.readLine()) != null) { |
|
|
|
|
responseBody.append(line); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return responseBody.toString(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException("API 응답을 읽는데 실패했습니다.", e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|