访问SOAP Web服务与ServiceStack(Access SOAP webservice w

2019-07-21 16:11发布

我创建与ServiceStack我的客户端/服务器应用程序互通,并且是伟大的工作,但我也需要访问外部SOAP的Web服务。

我试图用Soap12ServiceClient访问它,但我找不到任何例子,然后我去实际工作的附加服务引用WCF的方式,但创建一吨的代码。

是否有可能使用Soap12ServiceClient在我用同样简单的方式JsonServiceClient发送消息/请求和接收消息/响应? 如果是这样,你可以帮助或点我一个样品?

Answer 1:

我不知道你在哪里停留,因为所有的ServiceStack的的C#服务客户端实现相同的IServiceClient使他们能够以同样的方式被使用。 这里是所有ServiceStack内置的C#服务客户端的一个实例调用同的Hello World服务 :

[TestFixture]
public class HelloWorldServiceClientTests
{
    public static IEnumerable ServiceClients
    {
        get
        {
            return new IServiceClient[] {
                new JsonServiceClient(Config.ServiceStackBaseUri),
                new JsvServiceClient(Config.ServiceStackBaseUri),
                new XmlServiceClient(Config.ServiceStackBaseUri),
                new Soap11ServiceClient(Config.ServiceStackBaseUri),
                new Soap12ServiceClient(Config.ServiceStackBaseUri)
            };
        }
    }

    [Test, TestCaseSource("ServiceClients")]
    public void HelloWorld_with_Sync_ServiceClients(IServiceClient client)
    {
        var response = client.Send<HelloResponse>(new Hello { Name = "World!" });

        Assert.That(response.Result, Is.EqualTo("Hello, World!"));
    }
}

虽然SOAP的工作原理类似于任何其他C#的客户端,这是联合国共同以这种方式来使用它,因为如果你能够使用一个通用的C#SOAP服务的客户你也很可能能够使用任何其他服务的客户,其是所有的更快,更有弹性和超过可版本SOAP - 拥有有效拥有比它的产生,你说你不想做反正客户端代理能力等其他格式没有可取之处。

如果你拿不定主意,你应该使用哪一个端点或格式我建议你阅读我的InfoQ上采访 ,其中讨论了SOAP的缺点,并使用其他格式的好处。



文章来源: Access SOAP webservice with ServiceStack