void 메소드 란? : void 메소드는 자신이 일을 시작하고 마무리합니다.
return 메소드란? : 반면 리턴값이 있는 메소드는, 일의 중간 계산을 처리하고 이를 반환합니다.
* Controller
// RequestMapping : 리턴타입 없이 void일 경우, mapping된 url pattern이름과 동일 포워드한다.
@RequestMapping(value="/ui/BldEngyService")
public void BldEngyService(HttpServletRequest req, HttpServletResponse res) throws Exception {
String BldEngyServiceJson = "";
String serviceOpt = req.getParameter("serviceOpt");
String param = "?_type=json";
String apiUrl = "http://apis.data.go.kr/1611000/BldEngyService/" + serviceOpt + param + ServiceKey;
BldEngyServiceJson = gisBimApiServiec.publicDataPortalApi(req, res, apiUrl);
}
* Service
public String publicDataPortalApi(HttpServletRequest req, HttpServletResponse res, String apiurl) throws Exception {
Enumeration e = req.getParameterNames();
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
// System.out.println(name + " : " + req.getParameter(name));
apiurl += "&" + name + "=" + req.getParameter(name);
}
URL url = new URL(apiurl);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
StringBuffer sb = new StringBuffer();
String tempStr = null;
while (true) {
tempStr = br.readLine();
if (tempStr == null)
break;
sb.append(tempStr);
}
br.close();
res.setCharacterEncoding("UTF-8");
res.setContentType("application/json");
res.getWriter().write(sb.toString());
return sb.toString();
}