如何将数据发布到WCF服务

编程入门 行业动态 更新时间:2024-10-24 04:33:16
本文介绍了如何将数据发布到WCF服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个客户端,我试图将数据发送到JSON格式的基于Rest的WCF服务器和服务器端的数据对象获得空值。 以下是客户的代码段:

public class DeviceData { public 字符串 ID { get ; set ; } public string FirstName { get ; set ; } public string LastName { get ; set ; } }

var httpWebRequest =(HttpWebRequest)WebRequest.Create( http:// localhost:62570 / BLEService.svc / SaveDeviceDetails ); httpWebRequest.ContentType = application / json; httpWebRequest.Method = POST; var serializer = new Newtonsoft.Json.JsonSerializer(); 使用( var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { 使用( var tw = new Newtonsoft.Json.JsonTextWriter(streamWriter)) { serializer.Serialize(tw, new { method = SaveDeviceDetails, @params = new DeviceData {FirstName = abc,Id = 7,LastName = def} }); } } var httpResponse =(HttpWebResponse)httpWebRequest.GetResponse(); 使用( var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); }

这是我的服务器实现: IBLEService.cs

[OperationContract] [WebInvoke(方法) = POST,RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,UriTemplate = SaveDeviceDetails)] bool SaveDeviceDetails(DeviceData data);

BLEService:IBLEService(接口实现)

bool IBLEService.SaveDeviceDetails(DeviceData data) { try { System.IO.File。 WriteAllText( C:\\Device.txt,data.FirstName + + data.LastName + + data.Id); } catch (例外情况) { throw new FaultException< string> (ex.Message); } 返回 true ; }

服务器中的DeviceData.cs [DataContract] public class DeviceData { [DataMember(Name = Id)] public string ID { get ; set ; } [DataMember(Name = FirstName)] public string FirstName { get ; set ; } [DataMember(Name = LastName)] public string LastName { get ; set ; } }

这里服务器中的数据我得到了NULL,任何帮助将不胜感激。

解决方案

看起来JSON序列化器与WCF不太兼容,因此我将我的服务引用添加到客户端和我能够将我的数据发布到服务。

我们的想法是使服务器兼容.Net和非.NET客户端。

Hi, I have a client from which I am trying to POST data to a Rest based WCF server in JSON format and my data object on the server side is getting null value. Here is the code snippet for Client:

public class DeviceData { public string Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } }

var httpWebRequest = (HttpWebRequest)WebRequest.Create("localhost:62570/BLEService.svc/SaveDeviceDetails"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; var serializer = new Newtonsoft.Json.JsonSerializer(); using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { using (var tw = new Newtonsoft.Json.JsonTextWriter(streamWriter)) { serializer.Serialize(tw, new { method = "SaveDeviceDetails", @params = new DeviceData{FirstName = "abc",Id = "7", LastName = "def"} }); } } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); }

Here is my Server Implementation: IBLEService.cs

[OperationContract] [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,UriTemplate = "SaveDeviceDetails")] bool SaveDeviceDetails(DeviceData data);

BLEService:IBLEService (Interface Implementation)

bool IBLEService.SaveDeviceDetails(DeviceData data) { try { System.IO.File.WriteAllText("C:\\Device.txt", data.FirstName + " " + data.LastName + " " + data.Id); } catch (Exception ex) { throw new FaultException<string> (ex.Message); } return true; }

DeviceData.cs in Server

[DataContract] public class DeviceData { [DataMember(Name = "Id")] public string Id { get; set; } [DataMember(Name = "FirstName")] public string FirstName { get; set; } [DataMember(Name = "LastName")] public string LastName { get; set; } }

Here the data in server I m getting as NULL , any help will be appreciated Thanks.

解决方案

It looks like the JSON serializers are not much compatible with WCF, therefore I added my service reference to the client and I am able to post my data to the service.

The idea is to make the server compatible for both .Net and non-.NET clients.

更多推荐

如何将数据发布到WCF服务

本文发布于:2023-10-09 18:18:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1476425.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   数据   WCF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!