ASP.NET表单-如何将表单数据发送到外部WCF服务

时间:2018-10-23 12:33:16

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

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

该怎么办?

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

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

理想情况下,最初我想在没有jQuery / AJAX的情况下执行此操作,然后考虑以后再使用它们。

1 个答案:

答案 0 :(得分:1)

我认为,可以通过右键单击“项目”>“引用”将服务引用添加到项目中,以便可以使用客户端代理类调用服务方法。 如果服务调用通过HTTP传递,则可以使用HttpClient / Webclient / HttpWebRequest类将发布/获取请求发送到服务端点。就像下面的代码一样。

实体。

 [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