【问题标题】:How to call webmethod from different website如何从不同的网站调用webmethod
【发布时间】:2014-10-10 14:20:56
【问题描述】:

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

谢谢!

【问题讨论】:

  • 是的,你可以。这是一个网络服务。
  • @Matt 谢谢!您介意提供一个代码示例吗?是否也可以使用 WinForm 应用程序调用它?
  • 这里提供了一个使用 jQuery 的示例:trentgardner.net/net/asp-net-webmethods-with-jquery-and-ajax
  • @Matt 我的意思是我们可以从其他网站的 C# 代码中调用该方法吗?我的意思是使用其他方法的 WebClient ..
  • @Matt 另外,“不同的网站” - 所以链接使用脚本will not work。 Hth.

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


【解决方案1】:

我们可以使用 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 中找到示例。

【讨论】:

    【解决方案2】:

    是的,当然,webapi 是有意创建的,以便从使用 c# 或其他语言的任何客户端(控制台、winform、wpf、移动应用程序等)内部调用。 .Net 框架有各种用于调用 webapi ex 的类。 HttpWebRequest、HttpClient 或外部库 ex。 RestSharp。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      相关资源
      最近更新 更多