【发布时间】:2014-10-29 06:54:05
【问题描述】:
我在填写 Web 服务更新项时遇到问题
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="https://XXXXXX">
<soapenv:Header/>
<soapenv:Body>
<ns:UpdateRequest>
<ns:ID>112</ns:ID>
<ns:UpdateUsername>Testing User</ns:UpdateUsername>
<ns:UpdateTime>2014-01-01T14:01:59.123</ns:UpdateTime>
<!--1 to 100 repetitions:-->
<ns:Option>
<ns:UpdateID>1234</ns:UpdateID>
<ns:OptionID>1</ns:OptionID>
<ns:Status>Progress</ns:Status>
<ns:EndDate>2015-01-01T14:01:59.123</ns:EndDate>
</ns:Option>
</ns:UpdateRequest>
</soapenv:Body>
</soapenv:Envelope>
我已经从 WDSL 和 XSD 文件创建了 VB 类。 我做了什么。
- 通过凭据确定
- 通过更新请求,Web 服务记录测试用户已更新(不包括来自 Option 命名空间的填充数据)
我需要帮助来填写选项部分。我尝试过的代码如下
Dim Update As New CustomNamespace.UpdateRequestType
CustomNamespace.ID = "112"
CustomNamespace.UpdateUsername = "Testing User"
CustomNamespace.UpdateTime = "2014-01-01T14:01:59.123"
Using New System.ServiceModel.OperationContextScope(CustomNamespace)
Dim Options As New CustomNamespace.OptionType
Options.UpdateID= "1234"
Options.EndDate = "2015-01-01T14:01:59.123"
Options.Status = "Progress"
Options.OptionID = "1"
End Using
这没用。
所有尝试都没有使用确实发送更新但已填充的选项的命令。 像这样:
Dim Update As New CustomNamespace.UpdateRequestType
CustomNamespace.ID = "112"
CustomNamespace.UpdateUsername = "Testing User"
CustomNamespace.UpdateTime = "2014-01-01T14:01:59.123"
Dim Options As New CustomNamespace.OptionType
Options.UpdateID= "1234"
Options.EndDate = "2015-01-01T14:01:59.123"
Options.Status = "Progress"
Options.OptionID = "1"
我对代码很陌生,所以如果缺少相关信息,请询问。
感谢您的帮助
【问题讨论】:
-
您需要将
Options对象分配给父对象,如下所示:Update.Options = Options。否则,即使您创建了Options对象并填写了它,它也不会通过网络发送,因为它不包含在父对象中。
标签: .net vb.net web-services soap