Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 피보나치 예제
- 최대공약수 예제
- 테스트 자동화
- katalon 비교
- CSTS 폭포수 모델
- java.sql.SQLSyntaxErrorException
- 홈택스 해외주식 양도세
- 피보나치함수 예제
- 주식 양도세 신고방법
- 한국투자증권 해외주식 양도세
- 한국투자증권 양도세 신고
- bfs 미로탐색 java
- 해외증권 양도세 한국투자증권
- javascript 자동완성
- Katalon Recorder 사용법
- 재귀 예제
- katalon
- 재귀함수 예제
- katalon 자동화
- js 자동완성
- tomcat log
- 피보나치함수
- 국세청 해외주식 양도세 신고방식
- katalon 사용법
- recursion example
- 톰캣 실시간 로그
- 해외주식 양도세 신고
- katalon xpath
- oracle group by
- git 연동
Archives
- Today
- Total
엄지월드
okhttp를 활용한 RestAPI 호출 방법 본문
okhttp를 활용해 특정 API를 호출하기 위한 방법에 대한 안내를 해주겠다.
아래 코드는 공공 와이파이 API를 호출하기 위한 코드이다.
(http://openapi.seoul.go.kr:8088/{APIKey}/json/TbPublicWifiInfo/1/5/)
호출한 response 값을 result에 저장해주고 있다.
package com.example.wifi;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.*;
import java.net.HttpURLConnection;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
@WebServlet(name = "getWIFI", value = "/getWIFI")
public class HelloServlet extends HttpServlet {
public void init() {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html; charset=utf-8");
try{
OkHttpClient client = new OkHttpClient();
String url = "http://openapi.seoul.go.kr:8088/{APIKey}/json/TbPublicWifiInfo/1/5/";
Request rq = new Request.Builder()
.url(url)
.build();
Response rs = client.newCall(rq).execute();
PrintWriter out = response.getWriter();
String result = rs.body().string();
out.println(result);
}catch(Exception e){
e.printStackTrace();
}
}
public void destroy() {
}
}
response 데이터를 GSON을 활용해서 파싱하는 방법
package com.example.wifi;
import com.google.gson.*;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
@WebServlet(name = "getWIFI", value = "/getWIFI")
public class HelloServlet extends HttpServlet {
private String message;
private String url = "http://openapi.seoul.go.kr:8088/794f684f4b6b696e36304c486f4970/json/TbPublicWifiInfo";
public void init() {
message = "Hello World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html; charset=utf-8");
String getTotalCount = getWifiTotalCount(url);
JsonObject json_totalCount = new Gson().fromJson(getTotalCount, JsonObject.class);
int totalCount = Integer.parseInt(json_totalCount.getAsJsonObject("TbPublicWifiInfo").get("list_total_count").toString());
PrintWriter out = response.getWriter();
out.println("<h1>"+totalCount+"개의 WIFI 정보를 정상적으로 저장하였습니다.</h1>");
JsonArray jsonArray = json_totalCount.getAsJsonObject("TbPublicWifiInfo").getAsJsonArray("row");
for(JsonElement j :jsonArray){
out.println(j.getAsJsonObject().get("X_SWIFI_WRDOFC"));
}
}
String getWifiTotalCount(String url){
String result = null;
try{
OkHttpClient client = new OkHttpClient();
url = url+"/1/1/";
Request rq = new Request.Builder()
.url(url)
.build();
Response rs = client.newCall(rq).execute();
result = rs.body().string();
}catch(Exception e){
e.printStackTrace();
}
return result;
}
public void destroy() {}
}
gradle에 okhttp를 추가하는 방법에 대해서 궁금하다면?
https://kingle1024.tistory.com/281?category=740556
공공 API를 확인하는 곳이 궁금하다면?
https://data.seoul.go.kr/dataList/OA-20883/S/1/datasetView.do
'java > JSP' 카테고리의 다른 글
@WebServlet (0) | 2022.07.19 |
---|---|
JSP에서 Ajax Response UTF-8 한글 깨짐 현상 (0) | 2022.07.18 |
gradle import 방법 (0) | 2022.07.12 |
jsp usebean을 사용하는 엄청난 이유 (0) | 2017.06.17 |
파일 업로드시 refresh 해야 나타나는 현상 (0) | 2017.06.03 |
Comments