<%
	WS_URL = "http://ws.didim365.com/address/addrnew.aspx"
	'
	' 각  옵션에 대한 자세한 사항은 http://ws.didim365.com/address/docs.aspx 페이지 참고
	'
	' 시/도 선택
	GET_URL = WS_URL & "?sd="
	' 시/군/구				
	GET_URL = GET_URL & "&sg="
	' 결과형식				
	GET_URL = GET_URL & "&r=x"
	' 인코딩(UTF-8)
	GET_URL = GET_URL & "&enc=utf-8"
	' 인코딩(EUC-KR)
	' GET_URL = GET_URL & "&enc=euc-kr"
	' 검색어(UTF-8) (도로명/동/리/건물명)
	GET_URL = GET_URL & "&k=" & "가산디지털1로 51"
	' 검색어(EUC-KR) (도로명/동/리/건물명)
	' GET_URL = GET_URL & "&k=" & Server.URLEncode("가산디지털1로 51")
	' 결과에 도로명 주소 포함여부
	GET_URL = GET_URL & "&dr=t"													
	' 결과에 지번주소 포함 여부
	GET_URL = GET_URL & "&jb=f"													
	' 결과에 도로명 영문주소 포함 여부
	GET_URL = GET_URL & "&de=f"													
	' 결과에 대량배달/건물명 포함여부
	GET_URL = GET_URL & "&bn=t"													
	' 결과에서 건물번호/지번 정보 제외
	GET_URL = GET_URL & "&sp=f"													
	' 회원 인증키
	' 회원 전용 사이트 -> 회원 정보 관리 -> "API 인증키" 사용
	GET_URL = GET_URL & "&key=<회원인증키>"	
    Set objXmlHttp = server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
    objXmlHttp.open "GET", GET_URL, false
    objXmlHttp.send
    strResponseText = objXmlHttp.responseText
	Set objXmlHttp = Nothing
    Set objXml = Server.CreateObject("microsoft.XMLDOM")
    objXml.async = false
    objXml.loadXML(strResponseText)
     
	' Result : 처리 성공="True", 처리 실패="False"
    Result = objXml.SelectSingleNode("/Didim365-Address/Result").Text
	' Message : 처리 실패인 경우 에러 메시지
	Message = objXml.SelectSingleNode("/Didim365-Address/Message").Text
	
	Response.Write("처리 결과 : " & Result & "<br />")
	Response.Write("메시지 : " & Message & "<br />")
	If Result = "True" Then
		' Count : 처리 성공인 경우 검색된 주소 카운트
		Count = objXml.SelectSingleNode("/Didim365-Address/Count").Text
		
		Response.Write("카운트 : " & Count & "개의 주소가 검색 되었습니다.<br /><br />")
		
		Set AddrItems = objXml.selectNodes("/Didim365-Address/Data/Item")
		For Each Addr In AddrItems
			'  <항상 포함>
			' ZipNo : 우편번호
			'  <옵션에 따라 포함>
			' Doro : 도로명 주소
			' DoroEn : 도로면 영문 주고
			' JiBun : 지번주소
			ZipNo = Addr.SelectSingleNode("ZipNo").Text
			Doro = Addr.SelectSingleNode("Doro").Text
			Response.Write ( ZipNo & " : " & Doro & "<br />")
		Next
	End If
	     
    Set objMsXmlDom = Nothing
%>
			 
			
				
<?
    // xmlParse.php 파일은 아래 사이트에서 PHP4/5 용 파일 다운로드 가능 합니다.
    // https://www.cikorea.net/bbs/view/source?idx=7442 (php4.zip)
    include "xmlParse.php"; 
    $WS_URL = "http://ws.didim365.com/address/addrnew.aspx";
    /*
    * 각  옵션에 대한 자세한 사항은 http://ws.didim365.com/address/docs.aspx 페이지 참고
    */
    // 시/도 선택
    $GET_URL = $WS_URL . "?sd=";
    // 시/군/구	
    $GET_URL .= "&sg=";
    // 결과형식				
    $GET_URL .= "&r=x";
    // 인코딩(UTF-8)
    $GET_URL .= "&enc=utf-8";
    // 인코딩(EUC-KR)
    //$GET_URL .= "&enc=euc-kr";
    // 검색어(UTF-8) (도로명/동/리/건물명)
    $GET_URL .= "&k=" . urlencode((iconv("EUC-KR","UTF-8","가산 디지털1로 51")));
    // 검색어(EUC-KR) (도로명/동/리/건물명)
    // $GET_URL .= "&k=" . urlencode("가산 디지털1로 51");
    // 결과에 도로명 주소 포함여부
    $GET_URL .= "&dr=t";
    // 결과에 지번주소 포함 여부
    $GET_URL .= "&jb=f";
    // 결과에 도로명 영문주소 포함 여부
    $GET_URL .= "&de=f";
    // 결과에 대량배달/건물명 포함여부
    $GET_URL .= "&bn=t";
    // 결과에서 건물번호/지번 정보 제외
    $GET_URL .= "&sp=f";
    // 회원 인증키
    // 회원 전용 사이트 -> 회원 정보 관리 -> "API 인증키" 사용
    $GET_URL .= "&key=<회원인증키>";
    // 캐쉬가 안되도록 하기 위한 타임스탬프값 (캐쉬 방지 용으로 실제 사용하지는 않는 값입니다.)
    $GET_URL .= "&ts=" . time();
    $ch = cURL_init();
    cURL_setopt($ch, CURLOPT_URL, $GET_URL);
    cURL_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = cURL_exec($ch);
    cURL_close($ch); 
    $parser = new XMLParser($response);
    $parser->Parse();
    $doc_el = $parser->document;
    // result : 처리 성공="True", 처리 실패="False"
    $Result = $doc_el->result[0]->tagData;
    // message : 처리 실패인 경우 에러 메시지
    $Message = $doc_el->message[0]->tagData;
    echo ("처리 결과 : " . $Result . "<br />");
    echo ("메시지 : " . $Message . "<br />");
    if ($Result == "True") 
    {
	    // count : 처리 성공인 경우 검색된 주소 카운트
	    $Cnt = $doc_el->count[0]->tagData;
	
	    echo ("카운트 : " . $Cnt . "개의 주소가 검색 되었습니다.<br /><br />");
	    foreach($doc_el->data[0]->item as $item) 
	    {
		    //  <항상 포함>
		    // zipno : 우편번호
		    //  <옵션에 따라 포함>
		    // doro : 도로명 주소
		    // doroen : 도로면 영문 주고
		    // jibun : 지번주소
		
		    $ZipNo = $item->zipno[0]->tagData;
		    $Doro = $item->doro[0]->tagData;
            // (EUC-KR 일 경우 아래코드 주석처리)
		    $Doro = iconv("UTF-8","EUC-KR", $Doro);
		    echo ( $ZipNo . " : " . $Doro . "<br />");
	    }
    }
?>
				
			 
			
				<%@ Page Language="C#" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>새주소 검색 서비스</title>
</head>
<body>
    <form id="form1" runat="server">
<%
	string WS_URL = "http://ws.didim365.com/address/addrnew.aspx";
	//
	// 각  옵션에 대한 자세한 사항은 http://ws.didim365.com/address/docs.aspx 페이지 참고
	//
	// 시/도 선택
	string GET_URL = WS_URL + "?sd=";
	// 결과형식				
	GET_URL = GET_URL + "&sg=";
	// 결과형식				
	GET_URL = GET_URL + "&r=x";	
                    
	// 인코딩(UTF-8)
	GET_URL = GET_URL + "&enc=utf-8";
    // 인코딩(EUC-KR)
    // GET_URL = GET_URL + "&enc=euc-kr";
	// 검색어(UTF-8) (도로명/동/리/건물명)
	GET_URL = GET_URL + "&k=" + HttpUtility.UrlEncode("가산디지털1로 51");	
    // 검색어(EUC-KR) (도로명/동/리/건물명)
    // GET_URL = GET_URL + "&k=" + HttpUtility.UrlEncode("가산디지털1로 51", Encoding.GetEncoding("euc-kr"));
	// 결과에 도로명 주소 포함여부
	GET_URL = GET_URL + "&dr=t";													
	// 결과에 지번주소 포함 여부
	GET_URL = GET_URL + "&jb=f";													
	// 결과에 도로명 영문주소 포함 여부
	GET_URL = GET_URL + "&de=f";													
	// 결과에 대량배달/건물명 포함여부
	GET_URL = GET_URL + "&bn=t";													
	// 결과에서 건물번호/지번 정보 제외
	GET_URL = GET_URL + "&sp=f";													
	// 회원 인증키
	// 회원 전용 사이트 -> 회원 정보 관리 -> "API 인증키" 사용
	GET_URL = GET_URL + "&key=<회원인증키>";
		
	string ret = "";
	using (System.Net.WebClient wc = new System.Net.WebClient())
	{
		byte[] bRet = wc.DownloadData(GET_URL);
        // 인코딩(UTF-8)
		ret = Encoding.UTF8.GetString(bRet);
        // 인코딩(EUC-KR)
        // ret = Encoding.GetEncoding("euc-kr").GetString(bRet);
        
        ret = HttpUtility.HtmlDecode(ret);
	}
	System.Xml.XmlDocument xmlAddr = new System.Xml.XmlDocument();
	xmlAddr.LoadXml(ret);
	if (xmlAddr != null)
	{
		System.Xml.XmlElement docAddr = xmlAddr.DocumentElement;
		// Result : 처리 성공="True", 처리 실패="False"
		string Result = docAddr.SelectSingleNode("Result").InnerText;
		// Message : 처리 실패인 경우 에러 메시지
		string Message = docAddr.SelectSingleNode("Message").InnerText;
		
		Response.Write("처리 결과 : " + Result + "<br />");
		Response.Write("메시지 : " + Message + "<br />");
		if (Result == "True")
		{
			// Count : 처리 성공인 경우 검색된 주소 카운트
			string Count = docAddr.SelectSingleNode("Count").InnerText;
			Response.Write("카운트 : " + Count + "개의 주소가 검색 되었습니다.<br /><br />");
			
			System.Xml.XmlNodeList addrItems = docAddr.SelectNodes("Data/Item");
			foreach (System.Xml.XmlNode item in addrItems)
			{
				/*
					<항상 포함>
					ZipNo : 우편번호
					<옵션에 따라 포함>
					Doro : 도로명 주소
					DoroEn : 도로면 영문 주고
					JiBun : 지번주소
				 */
				string ZipNo = item.SelectSingleNode("ZipNo").InnerText;
				string Doro = item.SelectSingleNode("Doro").InnerText;
				Response.Write(ZipNo + " : " + Doro + "<br />");
			}
		}
	}
%>    
    </form>
</body>
</html>