web-dev-qa-db-ja.com

VB6からWebサービスを利用するにはどうすればよいですか?

VB6プログラムから外部Webサービスを利用する必要があります。可能であれば、SOAPツールキットなしでプログラムをデプロイできるようにしたいのですが、それは必須ではありません。Webサービスソースがなく、作成していません。ベンダーが提供するサービス。

では、SOAPツールキット以外で、VB6からWebサービスを利用するための最良の方法は何ですか?

15
Robert S.

この関数を使用して、Webサービスからデータを取得します。

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
10
Darrel Miller

.NETは初日からWebサービスを適切にサポートしているため、.NETでWebサービスクライアントロジックを.dllライブラリ/アセンブリとして開発し、COM相互運用機能を介してVB6アプリで使用できます。

4
huseyint

Windows XP Professional以上で実行していると仮定すると、興味深い方法の1つは、SOAPモニカを使用することです。これは、MSDNページから抜粋した例です。 。この特定のサービスが機能するかどうかはわかりませんが、アイデアは得られます...

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

このメカニズムはVBScriptからも機能します。いいですね。

3
Martin

Pocketsoap 非常にうまく機能します。オブジェクトを生成するには、 WSDLジェネレーター を使用します。これを使用すると、自分で何かを解析する必要はありません。さらに、すべてがニースで強く型付けされています。

2
Kris Erickson

MSDN VB 6.0 ResourceCenterのScottSwigartによるこの記事を確認してください。

Visual Basic 6からWebサービスを呼び出す簡単な方法

1
Rob Windsor

これまで、PocketSOAPを使用してSalesforceAPIに接続することである程度の成功を収めてきました。 WSDL Wizardは、呼び出し名の最初の23文字を使用してラッパークラスのファイル名を生成するため、使用できませんでした。これにより、重複が発生します。それでも、PocketSOAPは、ウィザードであり、DOMDocumentでXMLHTTPを使用するよりもはるかに簡単です。

また、.NETでラッパーを作成するか、「MS Office {MSOバージョン} Webサービスツールキット」ライブラリの1つを使用することも検討しましたが、これらのオプションにはかなりの展開の手間がかかりました。 PocketSOAPは単純なCOMDLLであり、MS Officeの特定のバージョンに依存せず、MPLでライセンスされています。

SOAPツールキットは間違いなくあなたが得ることができる最高のものです。それなしで同じことをしようとすると、かなりの余分な努力が必要になります。それを行うにはかなり深刻な理由が必要です。

SOAPメッセージの形式は、手動での読み取りまたは書き込みが実際には簡単ではないため、サードパーティのライブラリを強くお勧めします。

0
Ilya Kochetov