【问题标题】:ASP.NET Form - How do I send form data to external WCF ServiceASP.NET 表单 - 如何将表单数据发送到外部 WCF 服务
【发布时间】:2019-03-27 16:49:49
【问题描述】:

我在一个单独的项目(API 的一部分)上有一个 WCF 服务。与我的网站完全脱钩。我在我的 ASP.NET 站点上创建了一个表单(在 Visual Studio 2013 中从一个空站点开始)。

方法是什么。

  1. 单击提交按钮时读取/收集表单的值。
  2. 连接到远程 WCF 服务以将数据发布到它。
  3. 收到来自该 WCF 服务的响应?

我在网上看到了很多示例,但在这些示例中,所有内容始终在一个项目中,我不确定什么属于哪里。

理想情况下,我希望最初不使用 jQuery/AJAX,然后考虑使用它们。

【问题讨论】:

  • 您可以将 WCF 服务作为服务引用添加到您的项目中。

标签: c# asp.net wcf visual-studio-2013


【解决方案1】:

在我看来,您可以通过右键单击 Project>Reference 将服务引用添加到项目中,以便您可以使用客户端代理类调用服务方法。 如果服务调用通过 HTTP,您可以使用 HttpClient/Webclient/HttpWebRequest 类向服务端点发送 post/get 请求。就像下面的代码一样。

实体。

 [DataContract]
public class BookInfo
{
    [DataMember]
    public string Name { get; set; }
}

方法。

static void Main(string[] args)
    {
        BookInfo bookInfo = new BookInfo()
        {
            Name = "Apple"
        };
        Console.WriteLine(callService(bookInfo));
    }
    private static string callService(BookInfo input)
    {
        string serviceUrl = "http://localhost:90/Service1.svc/booking";
        string stringPayload = "{\"bookInfo\":" + JsonConvert.SerializeObject(input) + "}";
        WebClient client = new WebClient();
        client.Headers["Content-type"] = "application/json";
        client.Encoding = Encoding.UTF8;
        string rtn = client.UploadString(serviceUrl, "POST",stringPayload);
        return rtn;
    }

HttpClient更简洁易用,这里有一些官方文档。

https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?redirectedfrom=MSDN&view=netframework-4.7.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多