c# - 发送 SOAP 请求,从哪里开始?

标签 c# .net soap

我需要向 URL 发送 SOAP 请求。但我发现这比我想象的要难。

我必须发送的请求是:

string bla = "" +
"<?xml version='\"1.0\" encoding=\"UTF-8\"?>" +
    "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
        "<soap:Body>" +
            "<ns1:sendNotificationResponse" +
              "xmlns=\"http://notification.services.adyen.com\"" +
              "xmlns:ns2=\"http://common.services.adyen.com\">" +
            "<notificationResponse>[accepted]</notificationResponse>" +
            "</sendNotificationResponse>" +
        "</soap:Body>" +
    "</soap:Envelope>";

我得到了一个 URL:https://ca-test.adyen.com/ca/services/Notification?wsdl

问题是,我不确定如何从这里继续。我可以简单地向该 URL 发送请求吗?还是我必须先以某种方式导入 WSDL?

我在网上找到了很多例子,但我无法真正理解其中的大部分。有些甚至已经过时了,因为他们仍在使用:Microsoft.Web.Services3

所以简而言之,我对我必须在这里做什么以及如何做有点一无所知。我只是想发送“SOAP”消息...

最佳答案

您可以通过将服务引用添加到您在问题中提供的端点 URL 来实现。然后,您可以像调用普通方法一样调用 Web 方法,就在客户端对象之外。下面一步一步:

  1. 右键单击引用,选择添加服务引用
  2. 输入 URL 以添加服务引用
  3. 在代码中实例化新客户端并使用如下:
ServiceReference1.NotificationPortTypeClient client = new ServiceReference1.NotificationPortTypeClient(); 
client.sendNotification(...);

编辑

更详细地查看 Web 服务,看起来您在问题中包含的 SOAP 请求是调用该方法时将由 url 发回的响应 - 而不是您要发送到的请求调用该方法的 Web 服务。

关于c# - 发送 SOAP 请求,从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515573/

相关文章:

c# - 像VS那样实现一个窗口管理器就可以了

xml - PayPal 快速结帐 SOAP - 订单总数丢失

json - XML 是面向文档的。这是什么意思?

c# - 如果某个值不是 null,则隐藏 JSON 元素

c# - Entry 获得焦点时隐藏键盘

c# - 使用 SMTP 在邮件正文中发送多个文本框值

c# - 适用于 Windows Phone 8 的 HTTP 发布

.net - 在 Visual Studio 2008 中查找并删除冗余或未使用的代码

c# - 为什么 System.Array 的大多数方法都是静态的?

java - Apache CXF 插件 - 导致目标节点为空