如何从不同的网站调用webmethod

时间:2014-08-17 14:49:46

标签: c# asp.net .net ajax webmethod

我有一个在ASP.NET中完成的网站A,它在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以某种方式调用该方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我们可以使用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

另一方面,您可以使用WebClientHttpClient。您也可以在this post中找到示例。