我使用asp.net 2.0和一个简单的方法“HelloWorld”编写了一个Web服务来测试它。这是服务器收到的肥皂信封:
<?xml version="1.0" encoding="utf-8"?> <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:Header> <SoapAuthHeader xmlns="http://myservice.anywhere.net/"> <UserName>MyUser</UserName> <Password>MyPassword</Password> </SoapAuthHeader> </soap:Header> <soap:Body> <HelloWorld xmlns="http://myservice.anywhere.net/"> <request> <?xml version="1.0" encoding="utf-16"?> <HelloWorld /> </request> </HelloWorld> </soap:Body> </soap:Envelope>
我的问题是:如果我从具有嵌入式wsdl的Windows客户端发送请求,则成功。如果我从php(或SoapUI)发送请求请求失败 - 服务器没有“请求”字符串,意味着没有正文的内容。 服务器在两种情况下都接收上面相同的soap信封(使用跟踪扩展名记录它)。
感谢您的帮助。
哈拉尔德
P.S。无论我是否使用嵌入式XML或嵌入字符串进行请求。
答案 0 :(得分:0)
使用asmx跟踪我至少发现了SoapUI的问题。请求的需求类别是“text / xml”,它有“application / soap + xml”。我已禁用“肥皂动作”,呼叫成功。