通过Microsoft Web API端点调用Web服务 - asmx?

时间:2013-12-31 20:38:01

标签: c# web-services asp.net-web-api asmx .net-4.5

我正在使用Microsoft ASP.NET Web API 2,其中一个端点必须在内部调用旧版asmx网络服务。

这是正确的方法吗?

...................................................
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技术网络服务(没有asnx或svc)。上述方法对于那些类型的服务是否足够好?

1 个答案:

答案 0 :(得分:6)

这会奏效,但你的生活很艰难:)

您可以在Visual Studio中向项目添加服务引用,并在ASMX服务中调用方法,就像调用引用的DLL中的方法一样。请参阅this article

更新:

是的,您调用其他服务的方法是可行的,但我会检查是否将您的其他服务作为服务引用添加到您的项目中。服务引用功能适用于所有类型的协议(无论是否使用Microsoft技术构建)。