高分求助!通过WSDL创建SOAP web服务程序。链接到网站是http时,一切都很顺利,但是改为 https 就开始出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分求助!通过WSDL创建SOAP web服务程序。链接到网站是http时,一切都很顺利,但是改为 https 就开始出错相关的知识,希望对你有一定的参考价值。
是在 centOS 下编译的,编译命令为:
wsdl2h -o myhead.h https://IP省略/soap/Service.php?wsdl
报错:
** The gSOAP WSDL/Schema processor for C and C++, wsdl2h release 2.8.9
** Copyright (C) 2000-2012 Robert van Engelen, Genivia Inc.
** All Rights Reserved. This product is provided "as is", without any warranty.
** The wsdl2h tool is released under one of the following two licenses:
** GPL or the commercial license by Genivia Inc. Use option -l for details.
Saving ./stock/stock.h
Reading type definitions from type map file 'typemap.dat'
Cannot connect to https site: no SSL support, please rebuild wsdl2h with SSL or download the files and rerun wsdl2h
-------------------------------------------------------
网上和gsoap官方文档上说要 安装 openssl 然后使用 make secure 重新生成wsdl2h,这些都做成了,但是还是那个错误。我已经没辙了,哪位大虾做过类似的东东,还望不吝赐教。
Cannot connect to https site: no SSL support, please rebuild wsdl2h with SSL or download the files and rerun wsdl2h
说明,无法连接https站点,不支持ssl,请重新生成带有ssl的wsdl2h或者重新下载wsdl2h
WSDL 的 SalesForce Web 服务 - 无效的登录 SOAP 错误
【中文标题】WSDL 的 SalesForce Web 服务 - 无效的登录 SOAP 错误【英文标题】:SalesForce Web Service By WSDL - Invalid Login SOAP Error 【发布时间】:2011-09-15 14:24:59 【问题描述】:我正在尝试连接到 SalesForce Web 服务并在网页中返回一些数据。我是这个 WSDL 的新手。所以首先我创建了一个非常简单的控制台应用程序。我只是想看看我是否可以连接到网络服务。那工作得很好。我能够看到我们的表格并返回数据。
接下来我在http://www.developer.com/net/net/salesforce-integration-with-.net-web-services-soap-api-.html 使用了EXCELLENT 示例代码。将我的 web.config 设置更改为我的等。但是,我不断收到以下 SOAP 错误。
抛出:“INVALID_LOGIN:用户名、密码、安全令牌无效;或用户被锁定。” (System.Web.Services.Protocols.SoapException) 异常消息 = "INVALID_LOGIN: 用户名、密码、安全令牌无效;或用户被锁定。",异常类型 = "System.Web.Services.Protocols.SoapException"
调试数据显示正在发送正确的登录凭据。它们与控制台应用程序成功传递的凭据相同。
任何帮助将非常非常非常感谢!!!!或者如果有人有另一个代码示例,我也对此持开放态度......
【问题讨论】:
控制台应用还能用吗?想来想去,可能是你写了控制台应用,账号就被锁了。 【参考方案1】:通过 API 登录(即不通过网络应用)时,有一些额外的安全措施。
您需要:
从受信任的 IP 地址连接(在您的用户个人资料中受信任(请参阅个人资料详细信息页面)或通常在组织中(“安全控制 --> 网络访问”)进行连接或
将您的安全令牌附加到您的密码(从“我的个人信息 --> 重置安全令牌”中重置它)【讨论】:
【参考方案2】:如果您使用的是新的 API(例如 26.0),那么登录方法需要一个 LoginScopeHeader
参数。调用 Visual Studio 生成的soap代理时,您需要调用login()
传递null 作为LoginScopeHeader
的参数:
SoapClient client = new SoapClient();
string username = "user@salesforce.com";
string password = "password";
string securityToken = "xxxxxxxxxxxxxxxxxxxxxxxxx";
LoginResult loginResult = client.login(null, username, password + securityToken);
当然,您需要确保您有API enabled
设置(在配置文件中)
【讨论】:
以上是关于高分求助!通过WSDL创建SOAP web服务程序。链接到网站是http时,一切都很顺利,但是改为 https 就开始出错的主要内容,如果未能解决你的问题,请参考以下文章
WSDL 的 SalesForce Web 服务 - 无效的登录 SOAP 错误