문제

VB6 프로그램에서 외부 웹 서비스를 소비해야합니다. 가능하면 SOAP 툴킷없이 프로그램을 배치 할 수 있기를 원하지만 요구 사항은 아닙니다. 웹 서비스 소스가없고 만들지 않았습니다. 공급 업체 제공 서비스입니다.

비누 툴킷 밖에서 VB6에서 웹 서비스를 소비하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

이 기능을 사용하여 웹 서비스에서 데이터를 얻습니다.

Private Function HttpGetRequest(url As String) As DOMDocument
    Dim req As XMLHTTP60
    Set req = New XMLHTTP60
    req.Open "GET", url, False
    req.send ""

    Dim resp As DOMDocument
    If req.responseText <> vbNullString Then
        Set resp = New DOMDocument60
        resp.loadXML req.responseText
    Else
        Set resp = req.responseXML
    End If
    Set HttpGetRequest = resp
End Function

다른 팁

.NET은 첫날부터 웹 서비스를 잘 지원하므로 .NET에서 .NET에서 웹 서비스 클라이언트 로직을 .dll 라이브러리/어셈블리로 개발하고 COM Interop을 통해 VB6 앱에서 사용할 수 있습니다.

Windows XP Professional 이상에서 실행한다고 가정하면 흥미로운 방법 중 하나는 SOAP 모니 커를 사용하는 것입니다. 다음은 MSDN 페이지에서 들어 올려 진 예입니다. 이 특정 서비스가 작동하는지 모르겠지만 아이디어를 얻습니다 ...

   set SoapObj = GetObject
       ("soap:wsdl=http://www.xmethods.net/sd/TemperatureService.wsdl")
   WScript.Echo "Fairbanks Temperature = " & SoapObj.getTemp("99707")

이 메커니즘은 VBScript에서도 작동합니다. 좋은 것입니다.

포켓 소프 아주 잘 작동합니다. 객체를 생성하려면 사용하십시오 WSDL 생성기. 이것을 사용하면 자신이 아무것도 구문 분석 할 필요는 없으며 모든 것이 훌륭하고 강력하게 입력됩니다.

MSDN VB 6.0 리소스 센터에서 Scott Swigart 의이 기사를 확인하십시오.

Visual Basic 6에서 웹 서비스 호출, 쉬운 방법

나는 지금까지 Salesforce API에 연결하기 위해 PocketSoap을 사용하여 지금까지 성공을 거두었습니다. WSDL 마법사는 호출 이름의 첫 23자를 사용하여 래퍼 클래스 파일 이름을 생성하기 때문에 사용할 수 없으므로 중복이 발생합니다. 그럼에도 불구하고, PocketSoap은 마법사없이 나에게 충분히 잘 작동했으며, domdocument와 함께 XMLHTTP를 사용하는 것보다 훨씬 간단합니다.

또한 .NET에서 래퍼를 만들거나 "MS Office {MSO 버전} 웹 서비스 툴킷"라이브러리 중 하나를 사용하는 것을 살펴 보았지만 해당 옵션에는 상당한 배포 번거가있었습니다. PocketSoap은 간단한 COM DLL이며 특정 버전의 MS Office에 의존하지 않으며 MPL에 따라 라이센스가 부여됩니다.

비누 툴킷은 아마도 당신이 얻을 수있는 최고입니다. 그것 없이도 똑같은 일을하려고하면 상당한 노력이 필요합니다. 그렇게해야 할 심각한 이유가 필요합니다.

SOAP 메시지의 형식은 수동으로 읽거나 쓰기가 쉽지 않으며 타사 라이브러리가 고도로 권장됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top