【问题标题】:How do I make a POST web request in C# (SOAP)如何在 C# (SOAP) 中发出 POST Web 请求
【发布时间】:2020-02-04 10:21:45
【问题描述】:

我必须编写一个代码,用正文中的数据发出一个发布请求。我对这种事情不熟悉。

URI:https://___________________________________________________.asmx/Process

这是我必须在正文中发送的内容:

用户名:___________________

密码:___________________

API签名:_________________

MessageID:(一个新的 GUID)

数据:一些 XML。

【问题讨论】:

  • 网址以 ASMX 结尾。这是一个网络服务。您现在必须确定它是 Soap 还是 REST。谷歌“如何使用 [soap/rest] webservice c#?”。该解决方案的范围可以从添加服务引用到使用 Web 客户端进行 POST。基于 url 和 Xml 格式的 Rest 服务的可能性接近 0。
  • 这是一个很好的 MSDN 教程,它将涵盖 ASMX 服务的创建和使用。 support.microsoft.com/en-us/help/308359/…
  • 谢谢@xdtTransform - 我已经向一位同事澄清它是 SOAP。这至少给了我一个研究如何去做的起点。
  • 请告诉我们您使用的 Visual Studio 版本。它本质上是一个 3 步过程:1) 右键单击​​ References 并选择 Add [VS versiondependent wording] Reference,2) 将 asmx URL 粘贴到框中并单击 Go/Discover/Query/whatever,3) 单击 OK .然后编写像ActionServiceCLient asc = new ActionServiceClient(); asc.Process("myusername", "mypassword", "myapisig"); 这样的代码 - 是的,就这么简单

标签: c# soap http-post


【解决方案1】:
  • 在 VS 2017 中,右键单击引用并选择添加服务引用:

我将在http://www.dneonline.com/calculator.asmx使用示例计算器服务

  • 将服务URL放入框中,点击Go,选择一个命名空间,点击OK:

  • 查看解决方案资源管理器的 Connected Services 节点获得了这些内容:

  • 现在编写使用 XXXClient(XXX 是您的服务名称)的代码,例如:

  • 突出显示的是服务的操作,参数是操作的参数,例如 Add(1,2)

VS 做一个客户端来完成所有的 HTTP 和值的编码等;您所做的只是调用客户端方法,通过网络将 XML 发送到服务器,解码响应并返回方法

【讨论】:

  • 这对我不起作用,除了命名空间之外,我在 Connected Services 下什么也得不到
  • 尝试完全按照这些步骤操作,包括使用提到的免费在线服务 - 如果成功,那么可能是您的 asmx 服务没有导出 WSDL
猜你喜欢
  • 2018-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多