import java.io.*;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
// XML 파서
import javax.xml.parsers.*;
import org.w3c.dom.*;
//Get Method를 사용한 예제
public class TourAPISample{
//요청할 API서비스 URL 지정(지역 코드 검색 API)
private static String url = "http://tourapi.visitkorea.or.kr/TourAPI/services/code";
//파일에 byte[]를 저장하는 method
public static void saveBytes(String fileName, byte[] byteData) throws Exception{
FileOutputStream fo = null;
try {
fo = new FileOutputStream(fileName);
fo.write(byteData);
} finally{
try {
fo.close(); fo = null;
} catch(Exception e){}
}
}
public static void main(String[] args) {
//QueryString 지정(지역코드는 서울, 시/군/구 코드는 중구, 읍/면/동 코드는 신당2동)
url = url + "?code1=1&code2=24&code3=34&pageIndex=1&pageSize=10";
//HttpClient 생성
HttpClient client = new HttpClient();
//요청 Method 지정
HttpMethod method = new GetMethod(url); String responseXML = "";
method.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
//사용자의 TourAPI 인증키 지정
method.setRequestHeader("Authentication", "TA2011052617071265200404");
try { System.out.println( "QueryString>>>" + method.getQueryString() );
//STEP.1 Http 요청 및 요청 결과
int statusCode = client.executeMethod(method);
System.out.println("HTTP status code : " + statusCode );
//요청결과
if(statusCode == HttpStatus.SC_OK){
System.out.println("==========================================================");
System.out.println("요청 성공\n");
//STEP.2 결과를 화면에 출력
responseXML = new String(
method.getResponseBody(), "UTF-8"
);
System.out.println("응답 XML:\n" + responseXML);
// STEP.3 XML 파싱
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputStream istream = new ByteArrayInputStream(responseXML.getBytes("utf-8"));
Document doc = builder.parse(istream);
Element order = doc.getDocumentElement();
NodeList items = order.getElementsByTagName("dong");
String Result = "";
for(int i = 0; i < items.getLength(); i++) {
Node item = items.item(i);
NodeList Ntext = item.getChildNodes();
Node Nitem = Ntext.item(0);
Node text = Nitem.getFirstChild();
String ItemName = text.getNodeValue();
Node Nitem2 = Ntext.item(1);
Node text2 = Nitem2.getFirstChild();
String ItemName2 = text2.getNodeValue();
System.out.println("code : " + ItemName + " 동 : " + ItemName2);
}
System.out.println("==========================================================");
//결과를 파일에 저장
TourAPISample.saveBytes("responseXML.xml", method.getResponseBody());
}else {
System.err.println("Method failed: " + method.getStatusLine());
}
} catch (Exception e) {
System.err.println("Fatal protocol violation: " + e.getMessage()); e.printStackTrace();
} finally {
// Release the connection
method.releaseConnection();
} //try end
} //main end
} //TourAPISample end
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
// XML 파서
import javax.xml.parsers.*;
import org.w3c.dom.*;
//Get Method를 사용한 예제
public class TourAPISample{
//요청할 API서비스 URL 지정(지역 코드 검색 API)
private static String url = "http://tourapi.visitkorea.or.kr/TourAPI/services/code";
//파일에 byte[]를 저장하는 method
public static void saveBytes(String fileName, byte[] byteData) throws Exception{
FileOutputStream fo = null;
try {
fo = new FileOutputStream(fileName);
fo.write(byteData);
} finally{
try {
fo.close(); fo = null;
} catch(Exception e){}
}
}
public static void main(String[] args) {
//QueryString 지정(지역코드는 서울, 시/군/구 코드는 중구, 읍/면/동 코드는 신당2동)
url = url + "?code1=1&code2=24&code3=34&pageIndex=1&pageSize=10";
//HttpClient 생성
HttpClient client = new HttpClient();
//요청 Method 지정
HttpMethod method = new GetMethod(url); String responseXML = "";
method.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
//사용자의 TourAPI 인증키 지정
method.setRequestHeader("Authentication", "TA2011052617071265200404");
try { System.out.println( "QueryString>>>" + method.getQueryString() );
//STEP.1 Http 요청 및 요청 결과
int statusCode = client.executeMethod(method);
System.out.println("HTTP status code : " + statusCode );
//요청결과
if(statusCode == HttpStatus.SC_OK){
System.out.println("==========================================================");
System.out.println("요청 성공\n");
//STEP.2 결과를 화면에 출력
responseXML = new String(
method.getResponseBody(), "UTF-8"
);
System.out.println("응답 XML:\n" + responseXML);
// STEP.3 XML 파싱
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputStream istream = new ByteArrayInputStream(responseXML.getBytes("utf-8"));
Document doc = builder.parse(istream);
Element order = doc.getDocumentElement();
NodeList items = order.getElementsByTagName("dong");
String Result = "";
for(int i = 0; i < items.getLength(); i++) {
Node item = items.item(i);
NodeList Ntext = item.getChildNodes();
Node Nitem = Ntext.item(0);
Node text = Nitem.getFirstChild();
String ItemName = text.getNodeValue();
Node Nitem2 = Ntext.item(1);
Node text2 = Nitem2.getFirstChild();
String ItemName2 = text2.getNodeValue();
System.out.println("code : " + ItemName + " 동 : " + ItemName2);
}
System.out.println("==========================================================");
//결과를 파일에 저장
TourAPISample.saveBytes("responseXML.xml", method.getResponseBody());
}else {
System.err.println("Method failed: " + method.getStatusLine());
}
} catch (Exception e) {
System.err.println("Fatal protocol violation: " + e.getMessage()); e.printStackTrace();
} finally {
// Release the connection
method.releaseConnection();
} //try end
} //main end
} //TourAPISample end
[출처] : http://cafe.naver.com/web20frontier/842
'Project 자료수집' 카테고리의 다른 글
RAP 관련 링크 (0) | 2013.09.02 |
---|---|
RAP 개발을 위한 각종 링크 (0) | 2013.08.20 |
GIT 사용법 (0) | 2013.08.16 |
UPnP 관련 URL (0) | 2013.07.16 |
오픈소스 홈네트워크 프로그램 (UPnP) (0) | 2013.07.02 |