최근에는 공공기관들이나 포탈사이트등에서 자료 공개를 API로 하는데 REST을 제공해준다.
기존에는 SOAP 형식으로 제공되었으나 사용하기 간단한 REST 방식이 뜨고있다.
특히 정부3.0(http://data.go.kr)에서 데이터들이 API로 많이 오픈이 되었는데 여기서 사용하는 것이 REST방식이다.
아래의 예제는 해당 URL에서 POST로 데이터를 보내고 REST로 XML을 받아서 각각의 노드에 접근하는 방식을 설명한다.
1.우선 아래와 같은 REST 수신결과 XML이 있다고 가정합니다.
<response> <items> <item> <nameData>홍진현</nameData> <item> <item> <nameData>호구방위대</nameData> <item> </items> </response>
2.소스
WebClient wc = null; XmlDocument doc = null; XmlNode root = null; wc = new WebClient() { Encoding = Encoding.UTF8 }; doc = new XmlDocument(); try { List<string> ltReturn = new List<string>(); LoadedXML = wc.DownloadString(new Uri("http://TargetURL?param1=1")); doc.LoadXml(LoadedXML); root = doc.SelectSingleNode("response"); XmlNode ItemsList = root.SelectSingleNode("items"); foreach (XmlNode nowItem in ItemsList) { ltReturn.Add(nowItem.SelectSingleNode("nameData").InnerText); // nowItem[0].InnerText } return ltReturn; } catch (Exception) { return null; } finally { doc = null; root = null; wc.Dispose(); }
SelectSingleNode 를 통해서 노드를 선택하거나 nowItem[0] 처럼 노드를 배열처럼 사용해서 값들을 불러 올 수 있습니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 이벤트 생성 및 사용자 정의 EventArg (3) | 2015.03.23 |
---|---|
[C#] XML 다루기 - Property 와 Node 접근하기, 네임스페이가 있는 Node처리리 (0) | 2015.03.20 |
[C#] List Collection 재정의(Override) 하기 (2) | 2015.03.19 |
[C#] 날짜 비교 (Datetime 시간차이 구하기) (0) | 2015.03.19 |
[C#] 숫자를 문자형으로 변경하기 (0) | 2015.03.19 |