c++ - 使用 ATL 库时如何在运行时更改 Web 服务 URL?

标签 c++ web-services unmanaged atl

我正在尝试使用另一家公司的现有网络服务,但很难找到从不同位置使用相同网络服务的解决方案。

地址 http://url.to.A/webservice/ 提供了一个现有的网络服务,我可以使用 sproxy 为该服务生成一个 C++ 代理类.exe 来自 ATL tools .

使用该类,我可以毫无问题地使用网络服务。

现在我需要使用相同的 Web 服务,但是来自另一个 URL(比方说 http://url.to.B/webservice/),并且之前创建的代理类无法正常工作。方法代理之一内的 SendRequest 方法总是返回错误的 HRESULT 代码。顺便说一句,专门为第二个服务生成一个新的代理提供了一个可行的解决方案。

当我说服务相同时,我的意思是它们公开了完全相同的方法,因此它们各自的 wsdl 定义文件仅服务 URL 不同。

我试图更改生成的代理类实例的 URL 属性,但没有帮助。

考虑到我必须将非托管 C++ 用于消费部分,并且我希望能够在运行时指定服务端点,我的问题是否有可行的解决方案?

感谢您的帮助。

最佳答案

为每个服务器/服务生成一个单独的代理类。

然后对生成的代码进行比较。这应该让您知道区别是什么。

关于c++ - 使用 ATL 库时如何在运行时更改 Web 服务 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293440/

相关文章:

c++ - 将指针转换为 STL 中的反向 vector 迭代器

c++ - 如何为初学者开发 WebRTC 应用程序?

c++ - 打印 `vector<pair<int, int>>`

java - 第 22 行 : No source code is available for type in html libgdx

c# - 在非托管 C++ 程序中实现 C# DLL COM 文件

C# 加载非托管 DLL : big performance difference between console application and webapp on IIS

c++ - "T a"、 "T a()"和 "T a=T()"之间有什么区别,其中 T 是一个类?

sql-server - SQL CROSS APPLY 与 SQLCLR 表值函数 (TVF)

具有 Web 服务的 iOS CoreData - 如何将对象放入应用程序包中以进行初始应用程序下载

c# - 如何分配 16 字节对齐的内存?