이 문서에서는 XMLHTTP를 사용하여 Post 및 Get 기능을 구현하는 Visual Basic6.0의 모듈 방법을 설명합니다. 비록 오래된 코드이지만 Inet 컨트롤을 대체하여 데이터 통신을 달성할 수 있습니다. 배울 가치가 있습니다.
주요 모듈 코드는 다음과 같습니다.
'================================================ = ========='| 모듈 이름 | XMLHTTP'| 설명 | === ===================================Public Enum DataEnum ResponseText = 1 ResponseBody = 2End Enum Public Function GetData(ByVal URL은 다음과 같습니다. String, ByVal DataStic As DataEnum) 오류 발생 시 변형 GoTo ERR: Dim XMLHTTP As Object Dim DataS As String Dim DataB() As Byte Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") XMLHTTP.Open "get", Url, True XMLHTTP .send XMLHTTP.ReadyState <> 4 DoEvents Wend '------------------------- ------- 함수 반환Select Case DataStic Case ResponseText '-------------------------------- 문자열을 직접 반환합니다 DataS = XMLHTTP.ResponseText GetData = DataS Case ResponseBody '-- ------------------ 바이너리 직접 반환 DataB = XMLHTTP.ResponseBody GetData = DataB Case ResponseBody + ResponseText '--- - ------------- 바이너리에서 문자열로 변환 [직접 반환된 문자열이 깨졌을 때 시도] DataS = BytesToStr(XMLHTTP.ResponseBody) GetData = DataS Case Else '--------------------------------잘못된 반환 GetData = "" End Select '---------------릴리스 공간 XMLHTTP 설정 = 없음 함수 종료ERR: GetData = ""끝 함수 공용 함수 PostData(ByVal StrUrl As String, ByVal StrData As String, ByVal DataStic As DataEnum) As Variant On Error GoTo ERR: Dim XMLHTTP As Object Dim DataS As String Dim DataB() As 바이트 세트 XMLHTTP = CreateObject("Microsoft.XMLHTTP") XMLHTTP.Open "POST", StrUrl, True XMLHTTP.setRequestHeader "Content-Length", Len(PostData) XMLHTTP.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded" XMLHTTP.send(StrData) Do XMLHTTP.ReadyState = 4 DoEvents 루프까지 '-------------------함수는 Select Case DataStic Case ResponseText를 반환합니다. '---------------- 문자열을 직접 반환합니다 DataS = XMLHTTP.ResponseText PostData = DataS Case ResponseBody '-- --- --------------- 바이너리 직접 반환 DataB = XMLHTTP.ResponseBody PostData = DataB Case ResponseBody + ResponseText '---- -- -------- 바이너리에서 문자열로 변환 [직접 반환된 문자열이 깨졌을 때 시도] DataS = BytesToStr(XMLHTTP.ResponseBody) PostData = DataS Case Else '- ------------------잘못된 반환 PostData = "" End Select '------------릴리스 공간 설정 XMLHTTP = 없음 함수 종료ERR : PostData = ""End Function Function BytesToStr(ByVal vIn) As String strReturn = "" For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn, i, 1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn, i + 1, 1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next BytesToStr = strReturnEnd 함수