簡體   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