:::::::::::: Asp언어 xml 파싱에러처리 ::::::::::::::::::
WebDav라고 하는방식입니다. 간단히 설명만 드리면,
XMLHTTP 객체를 웹서버에 질의해서
결과를 XML문서로 리턴받는 방식입니다. 물론 XML문서는 속성값으로 파싱을 하셔서
가져와서 쓰면 되는데요, XMLDOM을
쓰기가 쉽지 않죠..왜냐면 COM개체 및 자동화에 대해서
이해가 필요하죠.
그나마 COM의 개념에 비하면 쉬운편이죠.... 보통은 DOM아니면 XLS(서식파일) 을 미리 정의해서 짤라서 쓰는데요... 아무튼 소스를 설명해 드리겠습니다. Set http = CreateObject("Microsoft.XMLHTTP") // xmlhttp.dll(Inprocess Com 개체 생성) http.open "GET", “http://kt68freepass.magicn.com:8080/ComAuthX?SID=ktf&CTN=01637506xx&SSN=710304-xxxxxxx”, False // 이런 SSN은 주민번호 같은데...710304-xxxxxxx 질문 수정하셈.. // 아그리고 주민번호를 Get방식으로 던지는 코딩은 보안에 // 아주 위험합니다. POST로 던져야지욤...수정하세욤 // 님 핸펀번호같은디......-_-;; //메소드 방식은 위의 URL에 Get방식으로 질의 http.send // 질의 전송 If (http.Status = 200) Or (http.Status = 207) Then // 전송 성공시 (에러는 401, 402,403, 404, 500이 보통 300이상) Dim rspXML
Dim rspNode1, rspNode2, ok Set rspXML = CreateObject("Microsoft.XMLDOM") //XMLDOM객체 생성 (결과값 파싱을 위해) If rspXML.loadXML(http.responseText) Then Set rspNode1 = rspXML.selectSingleNode("KTF-RESPONSE") result = rspNode1.getAttribute("ret") // XML의 속성태그 중에 의 값을 받아 result에 저장 Else // 실패 시 result = "FXMLerr" //에러코드
End If Set rspXML = Nothing //객체 초기화 If left(result,1) = “F” Then // 리턴된 값의 왼쪽에서 1번째 값이
// F이면 실패 // 인증에 실패 하였습니다. Else // 아니면 성인 인증 Ok!! if left(result,1) = ‘0’
// 13(생일이 지난 경우 12)세 이하 else if left(result,1) = ‘2’
// 16(생일이 지난 경우 15)세 이하 else if left(result,1) = ‘5’ // 20(생일이 지난 경우 19)세 이하
else if left(result,1) = ‘9’
// 사용가능 – 법인고객,
21(생일이 지난 경우 20)세 이 End If Else // 여기는 통신에러가 들어갑니다.... 권한이니 인증, 파일없음 등의 // 에러상태를 여기서 처리해 주시면 됩니다. 상태 300이상값 // Ex) If (http.Status = 401) // 인증오류 else If (http.Status = 403) // 권한 오류 else If (http.Status = 404) // 파일오류 else If (http.Status = 500) // 서버오류 else // 기타 오류처리 End If End If
결과값은 result에 저장이 됩니다. 이값이 어떤식으로 넘어오느냐는 처리를 잘해주셔야지요 l 출력데이터 : 결과코드(‘F’/’S’),결과(1바이트), 성별(1바이트-‘1’:남,’2’:녀) 이 값이 result안에 어떤식으로 저장되어 오는지 그걸 잘 짤라쓰셔야 합니다. 위에 소스에서 보니깐 맨 왼쪽이 T/F 그다음 left(result,2)가 1아니면 2가 넘어 오겠지요.... 인증에 필요한 정보는 클라이언트에서 인증에 관한 처리는 서버에서 합니다. 그 결과만 클라이언트에서 내려줘서 그에 상응하는 처리만 하면 되는 소스입니다. 거의 스코프에 맞는 코딩이 되엇습니다. 소스정리와 문법은 맞추어 코딩하시면 되겠습니다 |