【发布时间】:2011-05-23 11:59:19
【问题描述】:
我们有一个新的会计系统,为外部客户提供网络服务接口。我想访问其中一个接口,但没有 WSDL,所以我通过使用 HttpWebRequest 创建了请求,它工作正常。
但是,为了简化请求的创建和响应的解析,我想创建某种自动映射功能。我在 XSD 文件中有请求和响应结构。有什么想法吗?
请求创建:
public void SendRequest()
{
HttpWebRequest request = CreateWebRequest();
XmlDocument soapEnvelopeXml = new XmlDocument();
soapEnvelopeXml.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?>
<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
<soap:Body xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
++ structure type inserted here ++
</soap:Body>
</soap:Envelope>");
using (Stream stream = request.GetRequestStream())
{
soapEnvelopeXml.Save(stream);
}
using (WebResponse response = request.GetResponse())
{
using (StreamReader rd = new StreamReader(response.GetResponseStream()))
{
string soapResult = rd.ReadToEnd();
Console.WriteLine(soapResult);
}
}
}
【问题讨论】:
-
这很有趣。您是否尝试过打电话给他们并询问您在哪里使用 WSDL?
-
您是否尝试过在浏览器中打开网络服务,并将
?wsdl附加到 URL 中? -
是的,是的。不幸的是没有 WSDL。
标签: c# web-services xsd