:::::::::::: 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가 넘어 오겠지요....
인증에 필요한 정보는 클라이언트에서 인증에 관한 처리는 서버에서 합니다.
그 결과만 클라이언트에서 내려줘서 그에 상응하는 처리만 하면 되는 소스입니다.
거의 스코프에 맞는 코딩이 되엇습니다.
소스정리와 문법은 맞추어 코딩하시면 되겠습니다