通过HTTPS在VFP中调用Web服务时出错

时间:2012-03-18 05:25:22

标签: web-services visual-foxpro

我正在尝试在VFP 9.0 SP2中调用Web服务。托管该服务的站点仅可通过HTTPS获得。我在ASP.NET项目中使用此服务没有任何问题但是当我尝试在VFP中访问它时,我收到以下错误。

错误:1429 - 来自Connector:Connector:错误证书的OLE IDispatch异常代码0。 HRESULT = 0x800A1529 - 客户端:处理此请求期间发生意外错误。 HRESULT = 0x800A1529 - 客户端:发送Soap消息失败或未收到可识别的响应HRESULT = 0x800A1529 - 客户端:未指定的客户端错误。 HRESULT = 0x800A1529 .. 连接器:证书不良。 HRESULT = 0x800A1529 - 客户端:处理此请求期间发生意外错误。 HRESULT = 0x800A1529 - 客户端:发送Soap消息失败或未收到可识别的响应HRESULT = 0x800A1529 - 客户端:未指定的客户端错误。 HRESULT = 0x800A1529

VFP和需要SSL的Web服务是否存在问题?

以下是我用来测试连接的一些代码。

以下是一些示例代码......

CLEAR

LOCAL lcEndPointURL

lcEndPointURL = "https://geocoding.bit-co.com/WS_Geo_v1/Service1.asmx?WSDL"

o = CREATEOBJECT("MSSoap.Soapclient30")
? o.MSSoapInit(lcEndPointURL)
? o.GetGeoCoderVersion

这导致上述错误。

这里有一些VB.NET代码隐藏工作得很好(一旦引用了web服务)。

Public Class About
    Inherits System.Web.UI.Page
    Dim wsGeo As New wsGeo.Service1

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim GCVersion As String = wsGeo.GetGeoCoderVersion
        lblGCVersion.Text = GCVersion
    End Sub
End Class

此代码生成预期结果

1 个答案:

答案 0 :(得分:1)

我不知道URL是什么,但我只能怀疑它是否希望在获得响应之前传递完整的SOAP包/信封进行处理。您可能感兴趣的一个非常酷的工具可以跟踪此类调试工作期间的互联网通信,称为Fiddler。我已将它用于各种项目故障排除问题,它也可能对你有帮助。

也可能是一些超时问题。我把请求放入并检查Fiddler并得不到任何回报......就像网站本身没有响应一样。也就是说,我只是直接将WSDL链接放入浏览器,但它也可以用于我自己的封锁网站。 Fiddler可能能够更好地帮助回收“原始”数据以及可能缺少什么。

此外,如果它是订户类型服务,它可能会主动拒绝连接,除非连接提供了正确的用户/密码信息。有时它甚至可以根据它没有“注册”的特定IP地址主动阻止。

更新..选项2

另一个可能适合您的选项...转到this site。其西风技术由Rick Strahl拥有/运营。只要我记得(回到1993-94地区),他就是Foxpro和网络大师。他有一个wwSOAP下载工具来处理SOAP对象。我认为你遇到的是一个旧的SOAP实用程序,MS不一定支持/更新扩展的soap / xaml /嵌套包含xmlns:entries。这可能是你要打的。 wwSOAP是用VFP编写的,他的文档和样本通常很棒。我也会强烈关注它。