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("http://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.