【问题标题】:How to write client side for soap in c#如何在c#中为soap编写客户端
【发布时间】:2019-08-21 03:47:09
【问题描述】:

我有一个使用 SOAP UI 测试过的项目文件。

现在我想写它的客户端,所以通过查看这个solution,我试图做一些事情。但我有一个问题。

在解决方案中,提到了URLaction。我有一个URL,但我不确定我的action URL 是什么。所以我把两者都一样。

var _url = "http://111.111.111.1:111/HES/services/DoCommandRequest";
        var _action = "http://111.111.111.1:111/HES/services/DoCommandRequest";

 XmlDocument soapEnvelopeXml = CreateSoapEnvelope();
        HttpWebRequest webRequest = CreateWebRequest(_url, _action);
        InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);

        // begin async call to web request.
        IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

        // suspend this thread until call is complete. You might want to
        // do something usefull here like update your UI.
        asyncResult.AsyncWaitHandle.WaitOne();

        // get the response from the completed web request.
        string soapResult;
        using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult))
        {
            using (StreamReader rd = new StreamReader(webResponse.GetResponseStream()))
            {
                soapResult = rd.ReadToEnd();
            }
            Console.Write(soapResult);
        }

运行我的代码后,我在using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult)) 收到一个异常,上面写着

System.Net.WebException {“远程服务器返回错误:(500)内部服务器错误。”}

我相信我的action 有问题,但我不确定。

任何帮助将不胜感激。

【问题讨论】:

  • 我看到您正在使用字符串连接构建 XML:这是个坏主意。 XML 的编码规则会让你大吃一惊。 .NET 有多种用于构建 XML 的选项,它们将为您完成艰苦的工作。
  • 您要处理的回复 XML 在代码中的什么位置? (DataTable 是干什么用的?它是从数组中加载的,然后迭代……这可以直接用数组来完成。)
  • 什么是“字符串文件”?文件与 Web 服务有什么关系?您是在问如何向服务发出 HTTP 请求吗?如果是这样,请在问题中更清楚地说明。
  • @TomW 我已经更新了我的问题并添加了更多细节,你可以看到它
  • @Richard 是的,我无法得到答复。我也更新了我的问题并添加了更多细节。可以看看吗?

标签: c# soap webservice-client


【解决方案1】:

SOAPAction 在 SOAP 1.1 中是必需的,但可以为空 ("")。 See the comment here

首先,您应该尝试使用指向 wsdl 文件的链接来创建新的 SOAP 项目。之后尝试从 SOAP UI 发出请求。尝试运行“doCommand”操作。看看结果。您可以将其与您的应用程序的请求进行比较。您还可以使用 Fiddler 插入您的请求并比较它们以找出差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多