背景:
我正在创建一个webservices站点,它将提供许多类型的简单服务,而不仅仅是SOAP和其他协议.目标是使转换,RSS解析,垃圾邮件检查和许多其他类型的工作变得容易.该网站主要针对初学者开发人员.
我的问题:
我从来没有开发过任何C#或.NET.很多年前我确实破解了一些VB6,但就是这样.现在我需要一些在C#中通过SOAP进行RPC调用的例子.我试图搜索网络和Stack Overflow,找到这个,但没有找到很多资源,我不知道如何排序资源(哪些是旧的?哪些是不正确的?等等).
我创建了一个简单的示例服务,在PHP中调用如下:
<?php
$client = new SoapClient('http://webservi.se/year'); //URL to the WSDL
echo $client->getCurrentYear(); //This method returns an integer, called "year"
?>
Run Code Online (Sandbox Code Playgroud)
我现在想在C#中尽可能简单地调用这个方法.所有参考和例子都非常受欢迎.我该从哪里开始?哪些课程/模块/我可以使用哪些?
如果有更好的通信框架(后端意味着可扩展),解决方案根本不需要涉及SOAP,但请注意,服务器端是在Unix上用PHP实现的,因此Microsoft的专有解决方案是不可能的.服务器端.
请注意,我需要这样,所以我可以为J. Random Web Developer编写文档,以便遵循(即使它们在共享的虚拟主机上).因此,我认为最好的方法应该是仅在代码中执行此操作,但即使是其他方式,这当然也是受欢迎的.
简介:
有没有办法强制PHP内置的SoapClient类通过HTTPS连接到具有无效证书的服务器?
我为什么要那样做?
我在没有DNS条目或证书的服务器上部署了一个新的应用程序.我想在设置DNS条目和修复证书之前尝试使用SoapClient连接它,最合理的方法是让客户端在测试期间忽略证书.
我不是意识到这是一个巨大的安全隐患吗?
这仅用于测试.当服务投入生产时,将会有一个有效的证书,客户端将被强制验证它.
我正在尝试在远程主机上调用WS over https:远程端口,我得到:
获取http标头时出错
使用PHP5 SoapClient; 我可以通过这样做得到功能列表$client->__getFunctions()但是当我打电话时$client->myFunction(...)我总是得到这个错误.
我用Google搜索并发现在php.ini中增加了default_socket_timeout,但它没有用.
谁能建议我一个解决方案?
编辑:这是代码:
$wsdl="myWSDL";
$client = new SoapClient($wsdl,array('connection_timeout'=>5,'trace'=>true,'soap_version'=>SOAP_1_2));
var_dump($client->__getFunctions());
try {
$response=$client->myFunction("1","2","3");
} catch (SoapFault $fault) {
var_dump($fault);
}
}
Run Code Online (Sandbox Code Playgroud)
}
......总是有错.
问题:在实际发送请求之前,有没有办法查看使用PHP SoapClient函数调用创建的XML?
背景:
我是WSDL通信的新手,我有一个客户希望我用PHP开发,这是一种与用ASP.NET编写的WSDL服务进行通信的方式.我已经走得很远,但在传递复杂类型时遇到了问题.到目前为止,我尝试过几种不同的东西.
1)设置单个阵列,如 $params->Person->name $params->Person->address
2)设置单个阵列 $Person = array('name'=>"joe",'address' = "123");
然后作为参数传递给调用"Person"=> $ Person; 还有其他几个.但每次我收到错误
SoapException:服务器无法处理请求---> System.Exception:Person是必需的.在服务名称.
为了进一步排除故障,我希望看到正在发送的XML文档,以查看它是否按照我期望的方式创建复杂类型.我正在使用$client = new SoapClient('wsdldoc.asmx?WSDL');调用它创建服务$client->CreateUser($params);,然后尝试使用该函数查看它,$client->__getLastRequest(); 但它从未进入__getLastRequest,因为它在调用CreateUser($ params)时遇到致命错误.
问题再说一遍:有没有办法查看CreateUser($ params)调用创建的XML而不实际发送它并导致致命错误
我知道如何更改每个测试的端点,但我有100多个测试,因此我想选择项目/所有测试并说设置新端点.它可以吗?
无论如何,SoapClient请求超时并抛出异常.截至目前,我得到PHP服务器响应超时,在我的情况下60秒.基本上我想要的是,如果在一定时间内没有来自Web服务的任何回复,将抛出异常并且我可以捕获它.60秒警告不是我想要的.
如何检查服务器是否能够在运行时处理SOAP请求?我需要在脚本执行之前验证它.
我似乎无法找到任何这方面的例子.我在Node的github上看到一个列表,上面写着"报纸俱乐部 - 使用node.js将令人讨厌的SOAP接口包装到InDesign Server.",但是我没有看到任何代码.
谢谢.
编辑:我猜我可以找到任何javascript/SOAP工具包并将其移植到Node.对好的建议有什么建议吗?
我需要与基于.NET 2.0的SOAP服务构建一些集成.我使用PHP 5,从未使用过SOAP.似乎没有任何关于如何使用PHP与soap服务交谈的直接教程.
有谁知道在哪里可以找到一些好的教程或文档?
soap-client ×10
soap ×8
php ×6
c# ×1
https ×1
javascript ×1
node.js ×1
nusoap ×1
python ×1
soapui ×1
ssl ×1
timeout ×1
wcf ×1
web-services ×1
xml ×1