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