我正在研究SOAP Web服务的代码,我想知道Android的SOAP 1.1,SOAP 1.2,HTTP GET和HTTP POST方法的变化,以及其中的首选.请提供其使用URL或其代码的示例.
谢谢
背景:
我正在创建一个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编写文档,以便遵循(即使它们在共享的虚拟主机上).因此,我认为最好的方法应该是仅在代码中执行此操作,但即使是其他方式,这当然也是受欢迎的.
我在代码中调用此Web服务,我希望看到XML,但我找不到暴露它的属性.
由于php.net上的SOAP手册不是很友好,我找不到任何好的例子,我会在这里发布我的问题.
如何创建PHP SOAP请求看起来像这样?
POST /MySERVER/myWSDLservice.asmx HTTP/1.1
Host: connection.mywebsite.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://connection.mywebsite.com/MySERVER/GetCarType"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetCarType xmlns="http://connection.mywebsite.com/MySERVER/">
<IDNumber>string</IDNumber>
</GetCarType>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
请注意:
任何建议/链接/示例非常感谢.
我在一次采访中遇到了这个问题,你能告诉我SOAP Web服务是否只支持"POST"http方法,还是有一些方法可以接受服务器端的其他方法?
这就是问题所在.我在Apache上有PHP 5.2.9,我无法升级PHP.有没有办法让我在PHP 5.2.9中启用SOAP?PHP手册没有任何帮助,它说,"要启用SOAP支持,请使用--enable-soap配置PHP." 我该如何配置?
我目前正在研究实现一个将使用现有广泛的SOAP管理API的客户端.
我研究了不同的SOAP实现,如pysimplesoap和SUDS.虽然第一个因为递归太多而解析WSDL时遇到问题,但是suds工作得很好(但很慢)而且我真的很喜欢模块.
但是,SUDS似乎存在一些问题,例如高内存消耗,WSDL解析速度以及缺少对某些WSDL属性的支持(例如,选择属性).
虽然有很多人积极提交错误报告和补丁,但自2010-09-15以来没有发布过SUDS.此外,维基和路线图看起来有点被忽视.
对我来说,看起来SUDS已不再维护.
所以我的问题在这里:
[2013年11月更新]
两年多过去了,事实证明原来的肥皂水泥项目真的已经死了.自2010年以来,没有进一步的版本.由于这一事实,很多人开始分支suds,而像Debian这样的发行版正在部署原始suds包的修补版本来修复一些问题.
我可以推荐Jurko积极维护的叉子,我成功使用了它.它支持python 3并解决了很多泡沫已知的问题.Bitbucket上提供了发行说明和错误跟踪器,PyPI上也提供了该程序包,因此可以使用pip进行安装.
我需要让非托管的Windows C++客户端与WCF服务进行通信.C++客户端可以在Win2000及更高版本上运行.我可以控制WCF服务和正在使用的C++ API.由于它是专有应用程序,因此最好尽可能使用Microsoft的东西,绝对不是GNU许可的API.那些有它工作的人,你能分享一个循序渐进的过程如何让它运作起来吗?
到目前为止,我已经研究了以下选项:
还有什么想法吗?只有在你真正让自己工作的时候才能回答.
编辑1:我为任何我可能感到困惑的人道歉:我正在寻找的是一种从没有安装.NET框架的客户端调用WCF服务的方法,因此使用基于.NET的帮助库不是一种选择,它必须是纯粹的非托管C++
有什么区别REST和WebService(SOAP),我查看了facebook api,他们使用HTTP头和一些参数(可能是xml或非)并在xml中返回结果,其中SOAP完全相同,HTTP头+ xml参数和返回标头+ xml.
REST还需要一些经过身份验证的令牌,否则SOAP会使用http会话,这与用于身份验证和其他信息的令牌完全相同.我只能看到SOAP是REST的高级版本?
或者还有其他性能考虑因素吗?阅读REST只是谈论非常高级别的客户端服务器通信,但即使SOAP也完全相同.任何人都可以指出我可以定义REST和SOAP的正确边界.
我们在.net中透明地使用了很多SOAP,但是我只是想知道它是否真的值得注意REST,目前一切都运行得非常流畅.
我知道REST是一种架构而SOAP是一种协议,但我的问题是详细说明,目前SOAP的ASP.NET WebService实现是否具有REST架构?