【问题标题】:Call .svc through SOAP通过 SOAP 调用 .svc
【发布时间】:2018-03-29 04:23:14
【问题描述】:

我想通过 Soap 为 .svc 编写测试。谁能帮我创建 HTTPWebRequest 以调用 .svc 操作。

下面是我的示例代码

 var url = "http://localhost:4000/SI.WS.Core/SIF/CaseService.svc";
  var action = "http://localhost:4000/SI.WS.Core/SIF/CaseService.svc/GetCases";

 internal static HttpWebRequest CreateWebRequest(string url, string action)
        {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.Headers.Add("SOAPAction", action);
            webRequest.ContentType = "text/xml;charset=\"utf-8\"";
            webRequest.Accept = "text/xml";
            webRequest.Method = "POST";
            return webRequest;
        }

【问题讨论】:

  • 考虑到 .svc 文件是特定于 WCF 的 SOAP 实现,为什么不直接制作 WCF 客户端测试工具。 VS 甚至会代码生成代理客户端。我的意思是 HttpWebRequest APIs 中没有繁琐的 hypersp'erm
  • 一些客户端通过 SOAP 使用我的 WCF 服务。所以我想编写测试用例以与客户使用相同的方式进行测试。
  • 您所有的客户都在使用 SOAP。手动实现 WSDL 似乎不是很有用。也许看看 SoapUI。
  • @henk 同意,但想编写我也可以在客户环境中运行的测试用例。使用 SOAP UI 我无法手动运行所有测试用例。我要编写通用代码,该代码将从对象创建肥皂信封。并将通过soap调用服务方法。请帮我创建 .svc 的 Http Web 请求

标签: c# soap httpwebrequest soap-client


【解决方案1】:
internal  HttpWebRequest CreateWebRequest(string url, string action)
        {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.Headers.Add("SOAPAction", action);
            var username = "xxxxx";
            var password = "xxxxx";


            byte[] credentialBuffer = new UTF8Encoding().GetBytes(
                    username + ":" +
                    password);
            webRequest.Headers["Authorization"] =
                    "Basic " + Convert.ToBase64String(credentialBuffer);

            webRequest.PreAuthenticate = true;
            webRequest.ContentType = "text/xml;charset=\"utf-8\"";

            webRequest.Method = "POST";
            return webRequest;
        }

【讨论】:

    猜你喜欢
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2021-12-24
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多