【发布时间】:2014-01-18 17:17:12
【问题描述】:
我正在使用Microsoft ASP.NET Web API 2,我的一个端点必须在内部调用旧的asmx Web 服务。
这是正确的方法吗?
...................................................
WebRequest req = WebRequest.Create(myWebServiceURL);
req.Method = "POST";
eq.ContentType = "application/x-www-form-urlencoded";
string postData = whateverDataNeedsToBePosted;
using ( Stream reqStream = req.GetRequestStream() )
{
reqStream.Write( new ASCIIEncoding().GetBytes( postData ),
0, postData.Length );
reqStream.Close();
}
WebResponse resp = req.GetResponse();
.................................................. .
更新:我确实有一堆非 Microsoft 技术的 Web 服务(没有 asnx 或 svc)。上述方法对于这些类型的服务是否足够好?
【问题讨论】:
-
看起来很合理,但使用 jebar8 建议的自动生成代理会比手动构建 XML 容易得多。如果你决定走这条路,请使用适当的 XML API(如
XDocument)来构造请求/解析响应。 -
@AlexeiLevenkov 请查看更新后的问题。
-
是的...您的 POST 超级通用示例绝对适用于任何接受 POST HTTP 请求的服务(REST 服务、Web 服务/SOAP、常规 HTML 页面...)
标签: c# web-services asp.net-web-api asmx .net-4.5