Nodejs SOAP 客户端抛出错误 [ERR_TLS_CERT_ALTNAME_INVALID]:主机名/IP 与证书的替代名称不匹配:
我正在尝试在nodejs 中使用soap调用SOAP 服务。但是我收到错误[ERR_TLS_CERT_ALTNAME_INVALID]: 主机名/IP 与证书的替代名称不匹配: IP: XXX.XXX.XXX.XXX 不在证书列表中:。我是 Nodejs 新手,不知道如何调用需要 Nodejs 证书的 SOAP 服务。也欢迎在 Nodejs 中调用需要证书的 SOAP 服务的其他方式。
var url = "https://soapserviceurl?wsdl";
soap.createClient(url, function (err, client) {
if (err) {
console.log("Error Occurred!!");
console.log(err);
}
else {
console.log(client.describe());
}
});
Run Code Online (Sandbox Code Playgroud) 您的项目是用 Asp.net Core 编写的,可以部署 Rest API。然而,您的客户想要与肥皂进行交流。如何做出改进
我正在迈出第一步,开始使用网络服务.这是我的情况:
我正在使用.NET 3.5编写现有的企业内部网站.我需要添加对Web服务的调用,传递帐户数据并获得响应.
我能够添加.wsdl文件的Web引用,并让Visual Studio生成服务引用类.
所以,这是我的问题 - 在这种情况下使用WCF更容易,还是应该使用ASP.NET Web服务架构中的烘焙?
我尝试使用以下代码使Web服务正常工作,但未成功.在此代码中,ProgramServiceClient是VS使用wsdl文件为我生成的服务类的名称.同样,我对此非常新,所以任何指针都会非常有用!
var client = new ProgramServiceClient();
Int64 acct = 123456781234
var requestMetadata = new RequestMetadata();
var response = new GetProgramResponse();
var request = new GetProgramRequest
{
AccountId = acct
};
client.GetProgram(requestMetadata, request, out response);
Run Code Online (Sandbox Code Playgroud) 我有一个web服务,返回一个特定纬度/长度附近的"诊所"列表.但是,在我的调用Web中,我无法编译,因为以下代码出现错误.
private static List<Clinic> GetClinicsNearLocation(Coordinate coordinate, int searchDistance)
{
var wsDental = new ProviderLocation_Dental();
List<Clinic> clinics = wsDental.GetSearchResults(
coordinate.Latitude, coordinate.Longitude, searchDistance);
return clinics;
}
Run Code Online (Sandbox Code Playgroud)
错误是"无法转换表达式类型'com.dev.webservices.Clinic []'以返回类型'System.Collections.Generic.List'com.dev.services.dev.Clinic'"
任何想法为什么?
这是Web服务的方法:
public List<Clinic> GetSearchResults(string latitude, string longitude, int searchDistance)
{
var results = Clinic.GetClinicsNearLocation(latitude, longitude, searchDistance);
return results;
}
Run Code Online (Sandbox Code Playgroud) 我已经定义了一个Web服务,它将从我的mysql数据库中返回数据.
我用php编写了web服务.
现在我已经定义了一个复杂类型如下:
$server->wsdl->addComplexType(
'Category',
'complexType',
'struct',
'all',
'',
array(
'category_parent_id' => array('name' => 'category_parent_id', 'type' => 'xsd:int'),
'category_child_id' => array('name' => 'category_child_id', 'type' => 'xsd:int'),
'category_list' => array('name' => 'category_list', 'type' => 'xsd:int')
)
Run Code Online (Sandbox Code Playgroud)
);
上面的复杂类型是我数据库中表中的一行.
现在我的函数必须发送这些行的数组,所以我如何实现相同的
我的代码如下:
require_once('./nusoap/nusoap.php');
$server = new soap_server;
$server->configureWSDL('productwsdl', 'urn:productwsdl');
// Register the data structures used by the service
$server->wsdl->addComplexType(
'Category',
'complexType',
'struct',
'all',
'',
array(
'category_parent_id' => array('name' => 'category_parent_id', 'type' => 'xsd:int'),
'category_child_id' => array('name' => 'category_child_id', 'type' => 'xsd:int'),
'category_list' => …Run Code Online (Sandbox Code Playgroud) 我正在努力解决一个简单的JAXB定制问题.我有这样的架构.(它实际上是Bing Maps Web Services架构的一小部分)
<xs:complexType name="GeocodeOptions">
<xs:sequence>
<xs:element minOccurs="0" name="Count" nillable="true" type="xs:int" />
<xs:element minOccurs="0" name="Filters" nillable="true" type="ArrayOfFilterBase" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ArrayOfFilterBase">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="FilterBase" nillable="true" type="FilterBase" />
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
现在当我使用wsimport生成java类时,它创建了如下代码结构:
public class GeocodeOptions implements Serializable {
...
public ArrayOfFilterBase getFilters() {
...
}
public void setFilters(ArrayOfFilterBase value) {
...
}
}
public class ArrayOfFilterBase implements Serializable {
...
public List<FilterBase> getFilterBaseList() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所注意到的,ArrayOfFilterBase是一个容器类,我想省略它.我想直接在GeocodeOptions类中使用getFilterBaseList()方法.
是否可以通过JAXB定制来实现?我努力寻找它但找不到解决方案.
谢谢你的帮助.
关心Nabeel Mukhtar
我这里有一个wsdl文件:"模糊"我想知道如何从这个文件中获取SOAP头文件?这对我来说看起来很神秘,所以如果有人可以指点我的教程,那就太棒了.我想要的只是肥皂串,我需要传递给NSURLConnection,我可以使用NSXMLParser进行解析.
例如,这里的教程:http://www.icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/显示了如何实现它,但它没有展示如何从wsdl文件中获取SOAP消息.
谢谢!
我需要将SOAP标头设置为以下格式:
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-45">
<wsse:Username>XXXXX</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXXX</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">OxWtCYYj1cX7HiZeMEqorw==</wsse:Nonce>
<wsu:Created>2013-09-18T07:25:50.227Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用下面的代码验证Web服务,但它不起作用.
$momurl = "https://integrationdev.momentum.co.za/sales/CRMService/CRMLeadService_v1_0/";
$client = new SoapClient(
"$momurl",
array(
'trace' => 1,
'login' => $username,
'password' => $password
)
);
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.提前致谢.
我正在开发与Workday的集成。根据我的初步分析,我发现,工作日提供如“人力资源”不同的模块多的WSDL,“库存”等我能看到完整列表https://community.workday.com/sites/default/files/file -hosting / productionapi / operations / index.html
我试图了解如何在集成中通过编程方式获得此列表,以便我的用户可以选择wsdls之一,而不用输入WSDL的全名。请分享您对此的想法。
wsdl ×10
soap ×4
web-services ×3
asp.net ×2
xsd ×2
asp.net-core ×1
c# ×1
cocoa-touch ×1
ios ×1
jax-ws ×1
jaxb ×1
node.js ×1
objective-c ×1
php ×1
wcf ×1
workday-api ×1
ws-security ×1
xml ×1