Windows 与 Linux 上的 gSOAP C++ 代码

Posted

技术标签:

【中文标题】Windows 与 Linux 上的 gSOAP C++ 代码【英文标题】:gSOAP C++ code on Windows vs Linux 【发布时间】:2016-01-21 19:19:12 【问题描述】:

我通过代理服务将 gSOAP 与 EWS 一起使用以连接到 Exchange 服务。我已经完全使用 C++ gSOAP 代码在 Windows 上发送消息,但是当我在 Ubuntu 上编译和运行相同的代码时,我得到了 401 Unauthorized Error,为什么?

在 Windows 上:

我已经使用了soapcpp2.exe和wsdl2h.exe的二进制文件来生成头文件等。

编译和运行:我使用的是 MobaXterm(一种终端)

请任何熟悉 gSOAP 的人帮助我找出可能的问题。非常感谢。

【问题讨论】:

【参考方案1】:

401 Unauthorized Error 需要 HTTP 身份验证,可以使用 HTTPS 和基本身份验证,也可以使用 HTTP 摘要身份验证。代理也可能需要身份验证。

参见HTTP Digest Authentication上的教程

【讨论】:

但是 Alex 我只能使用 Basic Auth 进行此操作,我不能使用 Digest Auth。 我如何知道何时对代理进行身份验证或何时对端点服务器进行身份验证?请帮助我,我是这方面的新手。 HTTP 401 "Unauthorized" 是 Web 服务器身份验证质询。这需要基本或摘要式身份验证,并建议使用 HTTPS(基本身份验证以明文形式发送凭据)。我不知道为什么你描述的 Ubunto 有区别,也许代理向服务器进行身份验证?? 在这里,我将使用代码***.com/questions/35403847/… 分享相同问题的链接,希望这有助于您理解问题。谢谢。 我也想知道使用 wsdl2h.exe 和 soapcpp2.exe 等 Windows 二进制文件生成 gsoap 引擎文件并在 Ubuntu 中使用这些文件来运行程序是否重要。会不会是这个问题的原因?

以上是关于Windows 与 Linux 上的 gSOAP C++ 代码的主要内容,如果未能解决你的问题,请参考以下文章

Onvif开发之Linux下gsoap的使用及移植

gSoap 中文传输

尝试将 gSoap 与 WCF 和 WSHttpBinding 一起使用

gSoap开发——Webservice简介

我的gsoap创建客户端网络代理过程

我的gsoap创建客户端网络代理过程