我试图通过我的asp.net项目调用webservices方法。
我使用Fiddler来记录soap请求。但是,我发现请求中没有发送布尔类型值,其他类型工作正常。
xsd文件的定义如下:
<xs:complexType name="TestObject">
<xs:complexContent mixed="false">
<xs:extension base="com:TestObjectDTO">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="scenario" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="asap" type="xs:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
soap请求记录为:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<TestObjectDTO xsi:type="TestObject" xmlns="http://ws.com/service/">
<scenario>scenario_1</scenario>
</TestObjectDTO>
</soap:Body>
缺少asap元素。有什么想法吗?
感谢。
答案 0 :(得分:2)
<xs:element minOccurs="0" maxOccurs="1" name="asap" type="xs:boolean" />
minOccurs =“0”表示它是可选的,不需要出现在请求中。如果没有指定默认值,我会假设它默认为false,或者它可能必须由可空类型表示。
答案 1 :(得分:0)
我们刚刚遇到这个问题,看起来.NET会生成两个字段供您修改
.asap .asapSpecified
当我们将两者都设置为true时,它可以正常工作