繁体   English   中英

我如何在C#中调用另一个网站中的方法

[英]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。

如今,针对这些情况有许多解决方案:

  • ASP.NET Web Api:这是.NET的库,您可以在其中使用HTTP协议创建Rest API。 (我建议您尝试一下,因为它易于设置和使用,而且,在开放式网络中,我认为大多数API都可以通过http和json使用Rest API来使用)。 该项目将在下一版本中与MVC 6集成。
  • WCF:您可以使用它来创建SOAP和其他类型的服务。
  • 套接字:这是另一个无法满足您需求的选项,因为我认为您应该有充分的理由采用这种方式。
  • Web服务的其他框架和库

那不是它的工作原理。 两个网站是不同的应用程序,它们不能互相调用方法。 这不是网站做什么。

如果您希望应用程序进行通信,则应使用其他解决方案,例如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 += "&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"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM