我如何能调用一个方法,是在另一个网站在c#

本文关键字:方法 另一个 网站 一个 何能 调用 | 更新日期: 2023-09-27 18:05:40

我正在尝试调用另一个网站中的方法。

的例子:

WebsiteMVC (A) ->调用-> WebsiteMVC (B)中的方法

网站(A)必须传递一个字符串参数,网站(B)必须返回一个字节参数[]

另一个例子:

Website(A): www.xyz.com——调用方法并传递一个字符串——>Website(B): www.abc.com

网站(B): www.abc.com——返回一个Byte [] (a)>网站:www.xyz.com

我使用c#, MVC Razor.

我怎样才能使它工作?

我如何能调用一个方法,是在另一个网站在c#

首先,如果你能多解释一下为什么你想在另一个网站中调用一个方法,那就更好了。是因为你为其他网站和应用程序提供服务吗?

你有两个完全独立的MVC项目/站点,所以你不能直接从网站a调用方法到网站b。

尽管您可以使用MVC从a调用Web页面到B,并使用HTTP调用返回您想要的数组,并从站点B获得MVC控制器以返回您的数据,但我不推荐它,因为有更好的方法来使用ASP。. NET Web Api。

现在,对于这些情况有很多解决方案:

  • ASP。.NET Web Api:这是一个。NET库,您可以在其中使用HTTP协议创建Rest Api。(我建议尝试一下,因为它易于设置和使用,而且,在开放的web中,我认为大多数api都使用http和json上的Rest api)。本项目将在下一个版本中与MVC 6集成。
  • WCF:您可以使用它来创建SOAP和其他类型的服务。
  • 套接字:这是另一个选项,不能满足你的需求,因为我相信你应该有一个很好的理由这样做。
  • web服务的其他框架和库

不是这样的。两个网站是不同的应用程序,它们不能调用彼此的方法。这不是网站应该做的。

如果你想让你的应用程序通信,你应该使用其他的解决方案,比如web服务。您可以设置公开SOAP协议的WCF服务(例如),这将使远程方法调用成为可能。

我使用Http request with Post: Http request with Post

我是这样做的:

网站:

            //request for method url in WEBSITE B
            var request = (HttpWebRequest)WebRequest.Create("http://someDomain/controllerName/methodName");
            var postData = "param1=" + _someString;
            postData += "&param2=" + _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"];