c# - 如何使用 SOAP UI 传递 DTO

标签 c# .net web-services soapui dto

我在 .NET 中有一个 Web 服务,它接受参数作为 DTO。当我使用 SOAP UI 传递值时,对象没有进入 .NET Web 服务。

我的 DTO 是一个获取、设置类,我在我的 Web 服务方法中使用这个 DTO,如下所示。

getQuote(RequestDTO requestDTO)

当我像下面的请求一样使用 SOAP UI 对其进行测试时,requestDTO 始终作为 null 进入 getQuote 方法。但是,当我使用调用此 Web 服务的示例 .NET ASPX 页面进行测试时,它工作正常。

下面是我在 SOAP UI 中的请求。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"     xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<getQuotes>
<requestQuoteDTO>
<SystemID>123</SystemID>
<RequestCircuitID>6012344</RequestCircuitID>
<PriceAllNodes>false</PriceAllNodes>
<siteDTO>
<SiteName>Test SOAPUI</SiteName>
<Street1>5 St Johns Lane</Street1>
<Street2></Street2>
<City>London</City>
<PostCode>EC1M 4BH</PostCode>
<State></State>
<Country>GBR</Country>
<Wirecentre></Wirecentre>
<SitePhoneNumber></SitePhoneNumber>
<Latitude></Latitude>
<Longitude></Longitude>
</siteDTO>
<ProductRef>PIP</ProductRef>
<SpeedRef>4 Mbps</SpeedRef>
<LineTypeRef>Ethernet</LineTypeRef>
<ContractTerm>2</ContractTerm>
</requestQuoteDTO>
</getQuotes>
</soapenv:Body>
</soapenv:Envelope>

最佳答案

Soap 请求看起来像这样

enter code here
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
  <tem:getQuotes>
     <tem:requestQuoteDTO>
        <tem:SystemID>?</tem:SystemID>
        <tem:RequestCircuitID>?</tem:RequestCircuitID>
        <tem:PriceAllNodes>?</tem:PriceAllNodes>
        <tem:siteDTO>
           <tem:SiteName>?</tem:SiteName>
           <tem:Street1>?</tem:Street1>
           <tem:Street2>?</tem:Street2>
           <tem:City>?</tem:City>
           <tem:PostCode>?</tem:PostCode>
           <tem:State>?</tem:State>
           <tem:Country>?</tem:Country>
           <tem:Wirecentre>?</tem:Wirecentre>
           <tem:SitePhoneNumber>?</tem:SitePhoneNumber>
           <tem:Latitude>?</tem:Latitude>
           <tem:Longitude>?</tem:Longitude>
        </tem:siteDTO>
        <tem:ProductRef>?</tem:ProductRef>
        <tem:SpeedRef>?</tem:SpeedRef>
        <tem:LineTypeRef>?</tem:LineTypeRef>
        <tem:ContractTerm>?</tem:ContractTerm>
     </tem:requestQuoteDTO>
  </tem:getQuotes>

关于c# - 如何使用 SOAP UI 传递 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12870638/

相关文章:

c# - 如何在 C# 中的字符串的特定位置找到正则表达式匹配项?

java - JAX-WS - 如何创建类型为 xs :any from server side code? 的元素

c# - 将对象类型返回为接口(interface) C#

c# - MMC 自定义管理单元安装

C# 在线程中运行 InvokeMember

c# - 将二进制数据直接写入结构的 C#/.net 等效项是什么?

c# - 通过查看字节来检查 decimal 是否包含小数位

c# - 如何在 C# 中创建硬链接(hard link)?

php - 实现移动应用程序 Web 服务的标准方式

jquery - 使用jquery和webmethod在Gridview中延迟加载