如何从不同的网站调用webmethod



我有网站A这是在ASP完成。在default.aspx

[System.Web.Services.WebMethod]
public string GetCurrentTime(string name)
{
    return "Hello " + name + Environment.NewLine + "The Current Time is: "
        + DateTime.Now.ToString();
}

我们可以使用c#从另一个网站B调用该方法吗?

谢谢!

我们可以用c#从另一个网站B调用这个方法吗?

是的,您可以使用c#使REQUESTS到端点。GETPOST

简单GET请求

var endPoint = "http://domain.com/default.aspx";
var webReq = (HttpWebRequest)WebRequest.Create(endPoint);
using (var response = webReq.GetResponse()) {
    using (var responseStream = response.GetResponseStream()) {
        var reader = new StreamReader(responseStream);
        var responseString = reader.ReadToEnd();
        //Do whatever with responseString
    }
}

POST请求

var endPoint = "http://domain.com/default.aspx"
var data = "param1=hello&param2=world"
var webReq = (HttpWebRequest)WebRequest.Create(endPoint);
webReq.Method = "POST";
var bytes = Encoding.UTF8.GetBytes(data);
webReq.ContentLength = bytes.Length;
webReq.ContentType = "application/x-www-form-urlencoded";
using (var requestStream = webReq.GetRequestStream()) {
    requestStream.Write(bytes, 0, bytes.Length);
}
using (var response = webReq.GetResponse()) {
    using (var responseStream = response.GetResponseStream()) {
        var reader = new StreamReader(responseStream);
        var responseString = reader.ReadToEnd();
        //Do whatever with responseString
    }
}

这是一种简单的方法。更多信息请访问MSDN。

另一方面,你可以使用WebClient或HttpClient。你也可以在这篇文章中找到例子。

当然,webapi是故意创建的,可以从同一网站内部调用,另一个网站,从任何客户端(控制台,winform, wpf,移动应用程序,等等)使用c#或其他语言。. net框架有各种可用的类来调用webapi,例如HttpWebRequest, HttpClient或外部库,例如RestSharp.

最新更新