프로그래밍/buycycle
eBest xing api RESTful 요청 예제
말춘이
2021. 3. 29. 00:06
반응형
buycycle.name
'Buycycle'은 증권사 API를 HTTP Json으로 요청 및 응답 받을 수 있습니다. 요청 받은 Json 메시지를 증권사 API 양식에 맞게 변환해 주는 자바 기반의 오픈 소스 입니다. HTTP RESTful을 제공함으로써 사용자
opensource.buycycle.name
Buycycle 설치 후 모듈을 실행 하면 기본 localhost 7771번 포트로 바인딩 된다. 이 URL을 통해 HttpURLConnection를 활용하여 json 메시지로 요청 및 응답을 받아 보겠다.
import com.google.common.net.HttpHeaders;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;
public class BuyCyclePostRequest {
public static void main(String[] args){
try {
URL url = new URL("http://localhost:7771/data/ebest/query");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty(HttpHeaders.CONTENT_TYPE, "application/json;charset=utf8");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
String requestMessage =
"{" +
" \"body\": {" +
" \"trName\": \"t1511\"," +
" \"bNext\": false," +
" \"query\": {" +
" \"upcode\": \"001\"" +
" }" +
" }," +
" \"header\": {" +
" \"uuid\": \"7b81c375-d9b9-43c1-8449-77e561a979f2\"" +
" }" +
"}";
OutputStream os = httpURLConnection.getOutputStream();
os.write(requestMessage.getBytes());
os.flush();
for (Map.Entry<String, List<String>> header : httpURLConnection.getHeaderFields().entrySet()) {
for (String value : header.getValue()) {
System.out.println(header.getKey() + " : " + value);
}
}
InputStream is = httpURLConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String readLine = null;
while ((readLine = br.readLine()) != null) {
System.out.println(readLine);
}
br.close();
os.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
Buycycle의 api를 참조하여 http://localhost:7771/data/ebest/query URL 설정 후 메소드는 'POST' 헤더 값엔 Content-Type 을 application/json 으로 설정 후 요청 하였다.
테스트 해 본 TR은 '업종현재가'이며 '001'은 종합을 뜻한다.
해당 요청에 대한 응답은 다음 스크린샷과 같다.
HttpURLConnection을 활용하여 간단한 예제 코드를 구현 하였다. json 메시지에 대한 부분은 편의를 위해 String으로 하였으나 jackson 이나 gson 등 라이브러리를 활용하면 손 쉽게 json 메시지 구현이 가능하다.
반응형