티스토리 뷰
1. Msxml2.ServerXMLHTTP VS Microsoft.XMLHTTP
ASP페이지에서 쓸때는 ServerXMLHTTP, IE의 VBScript에서 쓸때는 XMLHTTP 를 쓴다.
무조건 그렇게 하는게 좋다. 왜 그래야하는지는 MSDN에서 찾아보시라. 잘 나와있다. ㅎㅎㅎ
2. IE상의 VBScript 에서 XMLHTTP 를 쓸 때 Permission denied 가 나오는 경우
.open 메서드를 실행했을 때 permission denied 나 나올때가 있다.
이것은 IE의 도구 > 옵션 > 보안 > 도메인간 데이터 소스 탐색을 허용해야한다.
그런데 유저가 엄청 많을때는 이것을 사용하기가 구린 상황이 있을 수 있으므로
어거지로 asp 페이지안에서 ServerXMLHTTP 를 사용하는 식으로 꽁수를...-_-;;;;;;;;;;;;
3. XMLHTTP GET으로 파일 읽어오기
function GetFileFrom(sURL, sSavepath)
on error resume next
dim oHTTP, oStream
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
set oHTTP = Server.CreateObject("Microsoft.XMLHTTP")
oHTTP.open "GET", sURL, False
oHTTP.send
set oStream = Server.Createobject("ADODB.Stream")
oStream.type = adTypeBinary
oStream.open
oStream.write oHTTP.responseBody
oStream.savetofile sSavepath, adSaveCreateOverWrite
set oStream = nothing
set oHTTP = nothing
if err.number <> 0 then GetFileFrom = false
else GetFileFrom = true
end if
end function
4. XMLHTTP POST로 form 제출하기
sType = Request.QueryString("TYPE")
sUserID = Request.QueryString("USERID")
set oXmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
oXmlhttp.open "POST", "http://somewhere.somewhere/upload_temp/somephppage.php", false
oXmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXmlhttp.send "USERID=" + sUserID
sResponse = oXmlhttp.responseText
' somephppage.php 에서 출력하는 내용이 responseText에 들어간다.
' 이 파일안에서는 특정조건을 체크해서 echo "1" 또는 echo "0" 만 한다.
' 이것을 응용하면, 다른 플랫폼의 php 나 cgi 를 웹을 통해서 부르는 흉내
' 를 낼 수 있다. 초간단 웹서비스인가? ㅋㅋㅋㅋㅋㅋ
' 그런데 sResponse 에는 끝에 괴상한 문자가 하나 들어간다. php 에서는
' 분명히 글자 하나만 출력했는데도. 실제로 len(sResponse)를 해보면
' 2가 나온다. 그래서 아래처럼 지저분한 코드가...-_-;;;;;;;;;;;;
if Left(cstr(sResponse),1) = "1" then ' 유저가 있음..
Server.Execute "ImgUpload_SaveToGDisk.asp" 'response 객체의 모든 내용이 같이 넘어간다.
'asp 3.0 에 추가된 메서드이므로 책찾아보시오.ㅋㅋㅋ
else
' 가입안내 페이지로 간다...
Response.Write "GDisk 사용자가 아닙니다. GDisk 사용신청을 해주십시오. (UI는 나중에..)"
end if
' 여기서 nothing 을 해야하는 이유... sResponse 가 oXmlhttp의 responseText
' 를 참조하고 있다. VBScript 에서는 기본적으로 by reference 이므로 sResponse
' 의 사용이 끝나기 전에 oXmlhttp를 nothing 해버리면 sResponse 가 유령이 되서리,
' if 절에서 runtime error를 내버린다. 그러니 왠만하면 CreateObject 한거나
' new 한것들을 함수 마지막에 nothing 하도록 하자.
set oXmlhttp = nothing
5. XMLHTTP PUT으로 file upload 하기
sUpload_temp = "http://somewhere.somewhere/upload_temp/"
set oXmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
' SXH_SXH_OPTION_URL_CODEPAGE 를 CP_ANSI 로 바꾼다.
' ServerXMLHTTP의 원래 URL코드페이지는 CP_UTF8 인데 이렇게 보내면 apache의 mod_dav에서 파일
' 명을 제대로 저장하지 못하고, 연이어서 php에서 file copy 가 실패한다.
' CP_UTF8 은 65001 이고 CP_ANSI는 0 이다.
' Visual C++의 winnls.h 를 찾아보면 나와있다. MSDN에 잘 메서드 설명 참조하시오~~~
' ASP 코딩하다 별걸 다 찾는구나 젠장-_-;;;;;;;;;;;;
' Microsoft.XMLHTTP 같은 옛날 버전의 XMLHTTP 는 이런거 해줄필요없다. 다만 ASP페이지안에서 쓰기에 불안할 뿐...
oXmlhttp.setOption 0, 0
' SXH_OPTION_ESCAPE_PERCENT_IN_URL 원래 false를 true로 공백을 escape char로 안바꿈.
oXmlhttp.setOption 1, true
' 이 부분!!!!!!!!!!!!!!!!!!!!!!
oXmlhttp.Open "PUT", sUpload_temp + sFileName, false
oXmlhttp.Send readBinaryFile(sRsltFile)
if err.number <> 0 then
Response.Write ClientMsgBox("[ERROR] " + oXmlhttp.statusText)
else
' php 페이지를 호출해서 적절한 디렉토리로 옮긴다
Response.Redirect sUpload_temp + "MoveFileToUsersGDisk.php?filename=" + sFileName + "&user=" + sUserID
end if
set oXmlhttp = nothing
function readBinaryFile(sPath)
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile sPath
readBinaryFile = objStream.Read
objStream.Close
Set objStream = Nothing
end function
이 방법을 쓰려면 웹서버쪽에 PUT 방식이 허용되어 있어야 한다. IIS는 기본적으로 되고(IIS가 쓰기
권한을 가진 디렉토리에 PUT 하면 된다) apache는 기본적으로 안되는데, apache 2.0 이상에 같이
포함되어 배포되는 mod_dav 를 사용하면 된다. mod_dav 를 사용하는 법은 www.apache.org 에 가서
mod_dav 를 넣고 찾아보세요~~~~~
[출처] http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=57&MAEULNo=22&no=1801
--------------------------------------------------
Microsoft.XMLHTTP
<%
Session.Codepage=65001
Response.ContentType="text/HTML"
Response.Charset="utf-8"
Function muzcast_pcode_chk(pcode,id,site_code)
Dim check_url
check_url = "http://url/http_test.asp?pcode=" & pcode & "&id=" & id & "&site_code=" & site_code
Set xml = server.CreateObject("Microsoft.XMLHTTP") '개체생성
xml.open "POST", "" & check_url & "", false '원하는 url불러오기
xml.send ""
strStatus = xml.Status '실행상태 받아오기
return_value = xml.responseText '실제 받고자하는 데이터
response.write return_value
set xml = nothing '개체 소멸
End Function
pcode_chk permission_code,id,site_code
%>
--------------------------------------------------
Microsoft.XMLHTTP
set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.open "POST", URL, false
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.send
Result = xml.responseText
Response.write Result
Set xml = Nothing
---------------------------------------------------
ServerXMLHTTP.4.0
Set obj_xml = CreateObject("MSXML2.ServerXMLHTTP.4.0")
szUrl = "http://www.naver.com"
obj_xml.Open "POST",szUrl, false
obj_xml.setRequestHeader "content-type","application/x-www-form-urlencoded; charset=euc-kr"
obj_xml.Send objDom.xml
(ADO.Stream) = obj_xml.responseBody
response.binaryWrite (ADO.Stream)
(ADO.Stream) 은 직접 만들것…
---------------------------------------------------
'웹프로그래밍 > ASP Classic' 카테고리의 다른 글
DB 데이터 엑셀 HTML 변환 파일 오픈시 한글 인코딩 깨질때 (0) | 2010.06.14 |
---|---|
ASP SHA1 (0) | 2010.06.01 |
[ASP,VBScript] 한글 자르기 (0) | 2010.04.06 |
Classic ASP Tagged Posts (Link) (0) | 2010.04.02 |
[ASP] Crazy Beaver (0) | 2010.04.02 |
- Total
- Today
- Yesterday
- Make Use Of
- How to geek
- 인터넷 통계정보 검색시스템
- 트위터 공유 정보모음
- 웹표준KR
- 치우의 컴맹탈출구
- Dev. Cheat Sheets
- w3schools
- Dev. 조각들
- ASP Ajax Library
- CSS Tricks
- WebResourcesDepot
- jQuery Selectors Tester
- DeveloperSnippets
- Smashing Magazine
- Nettuts+
- devListing
- 웹 리소스 사이트(한)
- Mobile tuts+
- Dream In Code
- Developer Tutorials
- CSS3 Previews
- 자북
- 안드로이드 사이드
- Code Visually
- Code School
- SQLer.com
- 무료 파워포인트 템플릿
- iconPot
- Free PowerPoint Templates
- Design Bombs
- Web Designer Wall
- 1st Webdesigner
- Vandelay Design
- 무료 벡터 이미지 사이트들
- Tripwire Magazine
- Web TrendSet
- WebMonkey
- 윤춘근 프리젠테이션 디자이너 블로그
- cz.cc 무료 DNS
- [웹하드] MediaFire
- [웹하드] DivShare
- 한컴 인터넷 오피스
- 워드프레스
- IE
- Debug
- Linux
- Chrome
- ASP
- mssql
- Mac
- laravel
- classic asp
- centos
- iis
- 안드로이드
- IOS
- CSS
- Prototype
- JQuery
- JSON
- javascript
- iphone
- API
- 한글
- sencha touch
- PHP
- Android
- nodejs
- Docker
- git
- nginx
- Wordpress
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |