我正在使用一个用 VB5 编写的遗留应用程序,我需要赋予它使用 Web 服务的能力。
有人知道如何做到这一点吗? 我听说VB6可以做到这一点,但我也没有任何细节。
别打扰。
我的意思并不是说,如果他们不愿意将应用程序从 VB5 升级到 VB6,那么为什么还要费心添加 Web 服务功能。我的意思是,只需在 VB.NET 中编写一个类来使用 Web 服务并将其公开为 COM 对象。然后在VB5程序中消费COM对象。
我什至不确定 Web 服务是否存在,当 VB5 发布时 - 不要尝试让 VB5 处理一些从未听说过的事情来诱惑命运。
可能有人认为将 VB5 应用程序升级到 VB6 没有意义。也许人们认为应用程序在被替换之前不会有太大变化。
但是您在这里谈论 Web 服务这一事实表明 VB5 应用程序仍然有一些生命力。你至少应该考虑升级到VB6。
有人可能仍然需要解决方案,而互联网上没有任何关于 VB5 的信息。
无需涉及VB.NET,您可以直接从VB5使用Web服务。
我在这里找到了解决方案:
https://www.vbforums.com/showthread.php?793541-API-calls-to-receive-data-in-VB5。
将引用“Microsoft WinHTTP Services,版本 5.1”添加到您的项目中(菜单 VB5 Project/References...)。使用您的网络服务调整并测试此代码(也许您应该根据服务的要求添加或更改一些标头):
Private Req As WinHttp.WinHttpRequest
Private Function HttpPost() As String
With Req
.Open "GET", "http://.......", Async:=False
.SetRequestHeader "Content-type", "application/json"
.SetRequestHeader "user", "username"
.SetRequestHeader "password", "password"
.Send ReqBody
Select Case .Status
Case 200 To 299
MsgBox CStr(Len(.ResponseText)) + " caratteri: " + .ResponseText
Case Else
MsgBox "Errore " + CStr(.Status)
End Select
End With End Function
Private Sub Command1_Click()
HttpPost End Sub
Private Sub Form_Load()
Set Req = New WinHttp.WinHttpRequest 'Can reuse an instance for many requests. End Sub