2018년 12월 14일 금요일

ASP - 웹서비스 연동 방식 (Soap, Get, Post)




const PrivacyService_Real_Addr = "http://도메인/페이지.asmx?WSDL"

Function fn_AuthCheckSoap
Dim objSoap, ip
Set objSoap = Server.CreateObject("MSSOAP.SoapClient30")
objSoap.ClientProperty("ServerHTTPRequest") = True
objSoap.MSSoapInit(PrivacyService_Real_Addr)       
ip = Request.ServerVariables("REMOTE_ADDR")
fn_AuthCheckSoap = objSoap.AuthCheck(ip) ' 호출 메소드
'fn_AuthCheckSoap = 1
End Function







프로젝트를 진행 하다가보면 경우에 따라서 웹 서비스를 호출 하는 일이 많이 있습니다.
이번에는 ASP 에서 Web Service 호출 하는 3가지 방법에 대해서 샘플 중심으로 정리해 보겠습니다.


1. Soap 방식의 Request 샘플 (XMLHTTP)
<%
szSoapServer  =  "http:// test .wsc.com/TEST.asmx "

szSoapMessage =                 "<?xml version='1.0' encoding='utf-8'?>"
szSoapMessage = szSoapMessage & "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
szSoapMessage = szSoapMessage &   "<soap:Body>"
szSoapMessage = szSoapMessage &      "<GetUserInfo  xmlns='http://" & WEB_SVC_HOST & "/'>"
szSoapMessage = szSoapMessage &         "<intUserSeq>" & nUserNo & "</intUserSeq>"
szSoapMessage = szSoapMessage &      "</GetUserInfo >"
szSoapMessage = szSoapMessage &   "</soap:Body>"
szSoapMessage = szSoapMessage & "</soap:Envelope>"

'다른 웹 서버 간에 서버의 안전한 HTTP 액세스를 위한 메서드와 속성을 제공, XML 데이터 교환 가능
Set objXmlHttp = CreateObject("MSXML2.ServerXMLHTTP")
'파라미터 1.POST / GET 메소드  2.요청을 전달할 URL 3. 비동기식(True) / 동기식(False)
objXmlHttp.open "POST", szSoapServer, False
objXmlHttp.setRequestHeader "Host"          , “test .wsc.com”
'메시지 Body안에 포함된 컨텐츠의 형식을 표시, Charset ? 문자 인코딩 방식 Ex) EUC-KR 한국어, UTF-8 유니코드(8비트)
objXmlHttp.setRequestHeader "Content-Type"  , "text/xml; charset=utf-8"
'헤더메시지 Body의 길이를 알려준다
'objXmlHttp.setRequestHeader "Content-Length", "1000"
'URI를 사용하여 원격 프로시저 호출
objXmlHttp.setRequestHeader "SOAPAction"    , "http:// test .wsc.com/GetUserInfo "
objXmlHttp.send szSoapMessage

%>


2. Post 방식의 Request 샘플 (XMLHTTP)
<%
szServer  =  "http:// test .wsc.com/TEST.asmx "

'다른 웹 서버 간에 서버의 안전한 HTTP 액세스를 위한 메서드와 속성을 제공, XML 데이터 교환 가능
Set objXmlHttp = CreateObject("MSXML2.ServerXMLHTTP")
objReqParam = ""
objReqParam = objReqParam & "?pram1="    & Server.URLEncode(pram1)  & ""
objReqParam = objReqParam & "&pram2="   & Server.URLEncode(pram2)  & ""
objReqParam = objReqParam & "&pram3="   & Server.URLEncode(pram3)  & ""
'파라미터 1.POST / GET 메소드  2.요청을 전달할 URL 3. 비동기식(True) / 동기식(False)
objXmlHttp.open "POST", szServer, False
objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXmlHttp.send objReqParam
%>


3. Get 방식의 Request 샘플 (XMLHTTP)
<%
szSoapServer  =  "http:// test .wsc.com/TEST.asmx?param1=param1&param2=param2&param3=param3 "

'다른 웹 서버 간에 서버의 안전한 HTTP 액세스를 위한 메서드와 속성을 제공, XML 데이터 교환 가능
Set objXmlHttp = CreateObject("MSXML2.ServerXMLHTTP")
'파라미터 1.POST / GET 메소드  2.요청을 전달할 URL 3. 비동기식(True) / 동기식(False)
objXmlHttp.open "GET", szSoapServer, False
objXmlHttp.send()

%>


4. Response Sample (XMLDOM)
<%
If objXmlHttp.status = 200 Then
  'XML 문서를 읽고수정하고생성하고조작
Set objXmlDom = Server.CreateObject("Microsoft.XMLDOM")
  '비동기식으로 동작하는 지를 설정해주는 불(Boolen) 파라미터
  objXmlDom.async = False
objXmlDom.setProperty "ServerHTTPRequest", True
'responseBody ? 응답으로 받은 데이터의 Body 부분을 Unsigned Byte 형식의 배열로 나타낸다.
'responseText - 응답으로 받은 데이터의 Body 부분 string 형식으로 나타낸다.
'responseXML ? 응답으로 받은 데이터의 Body 부분을 MSXML을 이용하여Parsing 하여 나타낸다.
  objXmlDom.Load objXmlHttp.ResponseBody

  'TagName을 가진 태그들의 노드 객체를 찾아 배열로 반환
Set objXmlNode   = objXmlDom.getElementsByTagName("GetUserInfoResult")(0)
' GetUserInfoResult TagName 하위의 태그들의 노드 객체를 찾아 배열로 반환
nUserNo         = objXmlNodeUserInfo.getElementsByTagName("UserNo")(0).Text
szUserID        = objXmlNodeUserInfo.getElementsByTagName("UserID")(0).Text
End If
%>





2018년 12월 6일 목요일

JavaScript - checkbox






[체크박스 전체 선택/해제]


<table>
  <colgroup>
     <col width="50" />
  </colgroup>
  <tr>
    <th><input type="checkbox" class="ckall" onclick="ckall(this)" /></th>
    <th>제목</th>
  </tr>
  <tr>
    <td><input type="checkbox" /></td>
    <td>무한도전</td>
  </tr>
  <tr>
    <td><input type="checkbox" /></td>
     <td>세바퀴</td>
  </tr>
  <tr>
    <td><input type="checkbox" /></td>
    <td>1박2일</td>
  </tr>
</table>



function ckall(o){
  var ck = $(o).prop("checked");  // 선택한 체크박스의 상태가 checked 이면 true 아니면 false를 반환합니다.
  if(ck){  // true 이면
    $("table input").prop("checked", true); //table 안에 포함된 input 상태값을 체크한다.
  }else{ // false 이면
    $("table input").prop("checked", false); //table 안에 포함된 input 상태값을 체크해제한다.
  }
}



function ckall(o){
  var ck = $(o).prop("checked");  // 선택한 체크박스의 상태가 checked 이면 true 아니면 false를 반환합니다.
  $("table input").prop("checked", ck); //table 안에 포함된 input 상태값을 체크
}




javascript - SQL 예약어 제거

  <script language="javascript"> //특수문자, 특정문자열(sql예약어) 제거 function checkSearchedWord(obj){ obj.value = obj.value+&quo...