[英]How i can call a method that is in another website in c#
我正在尝试调用另一个网站中的方法。
例:
WebsiteMVC(A)--->在---> WebsiteMVC(B)中调用方法
网站(A)必须传递一个字符串参数,而网站(B)必须返回一个字节参数[]
另一个例子:
网站(A):www.xyz.com ---调用方法并传递字符串->网站(B):www.abc.com
网站(B):www.abc.com ---返回一个字节[] --->网站(A):www.xyz.com
我正在使用C#,MVC Razor。
我该如何进行这项工作?
首先,最好能多解释一下为什么要在另一个网站中调用方法。 是因为您向其他网站和应用程序提供服务吗?
您有两个完全独立的MVC项目/站点,因此无法从网站A直接调用方法B。
尽管您可以使用MVC从A到B调用网页,并使用HTTP调用返回想要的数组,并从站点B获取MVC控制器以返回数据,但我不建议这样做,因为有更好的方法使用ASP.NET Web Api。
如今,针对这些情况有许多解决方案:
那不是它的工作原理。 两个网站是不同的应用程序,它们不能互相调用方法。 这不是网站做什么。
如果您希望应用程序进行通信,则应使用其他解决方案,例如Web服务。 您可以设置公开SOAP协议的WCF服务(例如),从而可以进行某种远程方法调用。
我使用Http请求和Post来完成: HTTP请求和post
这是我做的:
网站A:
//request for method url in WEBSITE B
var request = (HttpWebRequest)WebRequest.Create("http://someDomain/controllerName/methodName");
var postData = "param1=" + _someString;
postData += "¶m2=" + _anotherString;
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
网站B:
//Here I get the parameters:
string _param1 = Request.Unvalidated["param1"];
string _param2 = Request["param2"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.