강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

AJAX 강의 2장 - XMLHttpRequest 오브젝트 사용하기
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:58
4,842

1.

set xml = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
xml.open "POST", "http://www.naver.com", false
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.send
res = xml.responseText
Set xml = Nothing

response.write res

 

2.
url="http://www.naver.com"
set inet = CreateObject("InetCtls.Inet")


inet.RequestTimeOut = 20
inet.Url = url
str =inet.OpenURL

iStart =instr(str, "<H1>")
worldPop = Mid(str,iStart,iEnd-iStart)
 
response.write worldPop
 
3.
한글깨지는 것은 아래 처럼(http://blog.naver.com/limit76/40020546845)

Set xmlClient = CreateObject("MSXML2.ServerXMLHTTP.4.0")

xmlClient.open "GET", "http://www.naver.com", False

xmlClient.send

 

' ADO의 스트림 객체로 처리하기

' [이유] responseText 프라퍼티는 리모트의 응답을 무조건 유니코드로 간주하고 디코딩하므로

' 유니코드로 인코딩되지 않은 것들은 모두 글자가 깨짐

' 따라서 이러한 경우에는 responseText를 직접 사용할 수가 없기 때문에

' 리모트의 응답을 디코딩되지 않은 형태로 받아(responseBody 프라퍼티를 사용하면 됨)

' 적절한 인코딩으로 변환한 뒤에 사용하기 위해 ADO의 스트림 객체로 처리함

Set responseStrm = CreateObject("ADODB.Stream")

responseStrm.Open

' 스트림 객체의 타입을 변경하기 위해선 먼저 스트림의 현재 포지션을 처음으로 지정해야만 됨.

responseStrm.Position = 0

' 먼저 스트림 객체의 타입을 바이너리 타입으로 지정

responseStrm.Type = 1

responseStrm.Write xmlClient.responseBody

' 다시 스트림 객체의 타입을 변경하기 위해 현재 포지션을 처음으로 지정

responseStrm.Position = 0

' 이번에는 스트림 객체의 타입을 텍스트 타입으로 지정

responseStrm.Type = 2

' 원하는 인코딩 이름을 지정

responseStrm.Charset = "euc-kr"

resultStr = responseStrm.ReadText

 

Response.Write resultStr

Response.End

 

responseStrm.Close

Set responseStrm = Nothing

Set xmlClient = Nothing



4.

XMLHTTP
1.Method
Abort 현재 HTTP 요청을 취소합니다
GetAllResponseHeaders 응답 메시지에서 모든 헤더 필드를 검색합니다
GetResponseHeader 응답 본문에서 HTTP 헤더의 값을 검색합니다
Open HTTP서버에 대한 연결을 엽니다.
SetRequestHeader 요청 헤더 필드 중 하나를 설정합니다
Send HTTP 서버로 요청을 보냅니다. 본문이 포함될 수 있습니다
2.속성 속성을 사용하여 요청 확인-XMLHTTP 속성을 사용하면 요청을 확인할 수 있을 뿐만 아니라 서버로부터 반환된 값을 검색하여 요청으로 발생한 모든 오류를 확인할 수 있습니다.
OnReadyStateChange 이벤트 처리기 참조 비동기 작업에서만 사용합니다. 이 속성은 데이터가 서버에서 반환되는 것과 같은 대기 상태가 변경될 때 이벤트처리기 호출을 지정합니다
ReadyState Integer 비동기 작업의 상태, uninitialized (0), loading (1), loaded (2), interactive (3), completed (4)를 나타냅니다
ResponseBody Variant 배열 응답의 본문을 배열로 반환합니다.
ResponseStream IStream 응답의 본문을 ADO Stream 개체로 반환합니다
ResponseText String 응답의 본문을 텍스트 문자열로 반환합니다.
ResponseXML XMLDocument 개체 응답의 본문을 MSXML XMLDOM 파서로 분석된 것으로 반환합니다
Status Long 서버가 반환한 HTTP 상태 코드
StatusText String HTTP 응답 라인 상태

mxsml2.xmlhttp란 무엇인가?
xmlhttp는 원격파일을 부르는 방법입니다. 물론 로컬웹서버에 있는 파일도
가능하고, 같은 도메인 내에서라면 클라이언트영역에서도 사용가능합니다. 이렇게 개체를 참조합니다.


set xh=createobject("msxml2.xmlhttp")


get/post 둘다 사용가능합니다.


xh.open "get", "url", false
xh.open "post", "url", false

url은 비록 로컬서버라 해도 반드시 http로 시작합니다. 이렇게 연결을 연 다음에는 보냅니다.


xh.send something


마지막 something은 생략될수도 있습니다. 예를들어 get방식에서는 보낼게없을겁니다.
그러므로 그냥,


xh.send


무언가를 보냈으면 받는게 있을수도 있습니다. 받는건 스트링, 바이너리, xml등이 있습니다.
그러므로 호출자측 코드는 마지막으로 이렇게 끝납니다.


response.write xh.responseText 'or
response.binarywrite xh.responsebody 'or
response.write xh.responseXml.xml


한편 피호출자(url의 주소페이지)는 xmlhttp가 보내는걸 이렇게 받습니다.


response.write request.querystring(1)
response.write request.form(1)
response.binaryWrite request
xmldoc.load request


각각 get, post, binary, xml을 보냈을 경우입니다. 한편 두번째 post방식은 그동안 설명만으론 안됩니다.
사실은 보낼때, open과 send 사이에 다음 행을 집어넣습니다.


xh.setRequestHeader "Content-Type","application/x-www-form-urlencoded"


담에 보낼때,


xh.send "f1=1&f2=2"


이런식으로 쿼리스트링을 나누는것처럼 폼 변수를 나누어 보냅니다. 받는측에선
request.form(1), request.form(2), 이런식으로 나누어 받을겁니다.

한편 get방식은 오픈할때 그냥 url에 쿼리문자열을 넣어서 보냅니다.


xh.open "get", "http:// url/page.asp?a=1&b=2", false

그리고 send는 그냥,

xh.send


한글페이지를 불러올때는 바이너리로 열어야 글자가 안깨집니다.


xh.open "get", "http:// 한글페이지주소/page.asp", false
xh.send
response.binaryWrite xh.responseBody


이외에 xmlhttp는 바이너리나 xml dom 개체를 보내는데도 편리하게 사용할수 있습니다.

xmlhttp는 윈도우의 wininet.dll이라는 개체를 사용합니다. 단점은 멀티스레드가 안된다는겁니다.
그러므로 요즘은 serverXmlHttp가 권장됩니다.
사용법은 같습니다. 그냥 시작할때,


set xh=createobject("msxml2.serverXmlhttp")


server만 앞에 붙이면 됩니다. 한편 최신xml버전을 깔아두고, 버전까지 명시해서 사용하는것이 좋습니다.


set xh=createobject("msxml2.xmlhttp.4.0")
set xh=createobject("msxml2.serverXmlhttp.4.0")


출처 : Tong - 드렁크수달스님의 ■ AJAX ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3285 이것은 AI파일 미리보기입니다. 댓글3 M 최고의하루 01.15 3587
3284 이미지미리보기pds파일미리보기파일입니다^^ 댓글2 99 단국강토 01.14 2826
3283 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 2616
3282 자판기안의 특수문자 99 단국강토 01.13 2531
3281 ntdll.dll 오류 해결방법 M 최고관리자 01.12 4393
3280 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3099
3279 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2231
3278 CD 음악 mp3로 바꾸기 99 단국강토 01.08 2499
3277 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 2842
3276 IP 추적은 어떻게 하는가? 99 단국강토 01.07 2392
3275 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 2352
3274 이것은 AI파일 미리보기입니다. 댓글2 M 최고의하루 01.15 4029
3273 이미지미리보기pds파일미리보기파일입니다^^ 99 단국강토 01.14 2448
3272 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 2783
3271 공유기 차단 무력화 시키는 법 99 단국강토 01.13 3541
3270 자판기안의 특수문자 99 단국강토 01.13 2364
3269 ntdll.dll 오류 해결방법 M 최고의하루 01.12 3661
3268 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3226
3267 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2169
3266 CD 음악 mp3로 바꾸기 99 단국강토 01.08 2485
3265 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 3311
3264 IP 추적은 어떻게 하는가? 99 단국강토 01.07 2212
3263 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 2308
3262 [컴퓨터 키보드, 특수문자 정식 명칭들] M 최고의하루 12.18 3700
3261 하드,CPU,RAM 지원표 M 최고의하루 12.18 2584
3260 award bios 어워드 바이오스 설정법 M 최고의하루 12.18 3943
3259 내장 그래픽카드 죽이는 법 M 최고의하루 12.04 4881
3258 컴퓨터 조립 M 최고의하루 12.04 2830
3257 USB 버젼 속도 차이 2 천진난만 02.20 2375
3256 제가 사용하고 있는 마케팅프로그램입니다 댓글1 3 천지인 05.23 13192
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취