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 | 31 |
Tags
- 양동점
- 루키초밥
- egov
- 나주
- css
- ORA-00909
- 은혜침구
- mybatis
- 문방구과자
- 카페
- RefreshableSqlSessionFactoryBean
- ORA-01745
- AbstractViewe
- 광주
- JavaScript
- Oracle
- Java
- ORA-01005
- 배딩작업
- 정민이초밥
- Responsively app
- Jsp Pagination
- 디카페인
- 반응형앱
- docker
- 요리
- Eclipse
- 맛집
- SVN사용방법
- ORA-01756
Archives
- Today
- Total
gnusraun
Java HttpURLConnection을 이용한 HTML 호출 본문
728x90
HttpURLConnection을 이용한 POST + paramter 입력으로 HTML 호출
:: HttpURL통신을 위한 HTTP_HTML 메소드 생성
/**
* HTTP API 호출 주소, 파라미터, 메소드(GET, POST)
* params은 반드시 LinkedHashMap으로 지정하여 전달 / 순서를 맞추기 위해 사용
* ex) String addr1 = "주소입력";
* Map<String, Object> params1 = new LinkedHashMap<>();
* params1.put("params", "values");
* String met = "POST";
* String HTTP_HTML1 = HTTP_HTML_API(addr1, params1, met);
* @param String url, Map<String, Object> params, String met
* @return String html
*/
public static String HTTP_HTML(String addr, Map<String, Object> params, String met) throws Exception {
String result = "";
URL url = null;
url = new URL(addr);
StringBuilder postData = new StringBuilder();
for(Map.Entry<String,Object> param : params.entrySet()) {
if(postData.length() != 0) postData.append('&');
postData.append(URLEncoder.encode(param.getKey(), "euc-kr"));
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "euc-kr"));
}
byte[] postDataBytes = postData.toString().getBytes("euc-kr");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.setDoOutput(true);
conn.getOutputStream().write(postDataBytes); // POST 호출
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "euc-kr"));
String inputLine;
while((inputLine = in.readLine()) != null) { // response 출력
result += inputLine + "\n";
}
in.close();
return result;
}
:: 호출방법
String addr = "https://www.naver.com";
Map<String, Object> params = new LinkedHashMap<>(); // 맵 순서를 고정하기 위해 LinkedHashMap 사용
params.put("key", "value"); // 전달할 파라미터 값
String met = "POST"; // GET or POST or ETC
String HTTP_HTML = HTTP_HTML(addr, params, met);
* 네이버 호출시 정상적으로 html이 반환됨
* 해당 소스를 사용하여 GET 또는 POST 등 메소드를 수정해서 사용
* HTML이 아닐 경우 String HTTP_HTML 변수를 활용하여 데이터 가공하기
728x90
'Backend > Java' 카테고리의 다른 글
Java 특정 문자 사이 값 추출하기 (0) | 2023.05.14 |
---|---|
Java 기본 형변환 (0) | 2023.05.13 |
Java isEmpty (0) | 2023.05.13 |