我正在使用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)。上述方法对于那些类型的服务是否足够好?
答案 0 :(得分:6)
这会奏效,但你的生活很艰难:)
您可以在Visual Studio中向项目添加服务引用,并在ASMX服务中调用方法,就像调用引用的DLL中的方法一样。请参阅this article。
更新:
是的,您调用其他服务的方法是可行的,但我会检查是否将您的其他服务作为服务引用添加到您的项目中。服务引用功能适用于所有类型的协议(无论是否使用Microsoft技术构建)。