How to create and consume wcf rest service in C#
1) Create WCF Service application
2) Add interface file+Class file+ .svc file
Interface file: interface1.cs
Class file: class1.cs
Service file: Service2.svc
3) interface1.cs
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Runtime.Serialization;
using System.ServiceModel.Web;
using System.Runtime.Serialization;
namespace WcfService1
{
[ServiceContract]
interface Interface1
{
[WebGet]
Person GetPerson();
}
[DataContract]
public class Person
{
[DataMember] public int id{get;set;}
[DataMember] public String Name{get;set;}
[DataMember] public DateTime Dob{get;set;}
}
}
interface Interface1
{
[WebGet]
Person GetPerson();
}
[DataContract]
public class Person
{
[DataMember] public int id{get;set;}
[DataMember] public String Name{get;set;}
[DataMember] public DateTime Dob{get;set;}
}
}
}
4) Class1.cs
namespace WcfService1
{
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class Class1:Interface1
{
public Person GetPerson()
{
WebOperationContext wc = WebOperationContext.Current;
String contentType=wc.
IncomingRequest.
Headers[System.Net.HttpRequestHeader.ContentType];
if (!String.IsNullOrEmpty(contentType))
{
if (contentType.Contains("application/json"))
{
wc.OutgoingResponse.ContentType = "application/json";
wc.OutgoingResponse.Format = WebMessageFormat.Json;
}
else
{
wc.OutgoingResponse.ContentType = "text/xml";
wc.OutgoingResponse.Format = WebMessageFormat.Xml;
}
}
return new Person { id = 102, Dob = DateTime.Now.AddYears(-40), Name = "Peter"};
}
}
}
{
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class Class1:Interface1
{
public Person GetPerson()
{
WebOperationContext wc = WebOperationContext.Current;
String contentType=wc.
IncomingRequest.
Headers[System.Net.HttpRequestHeader.ContentType];
if (!String.IsNullOrEmpty(contentType))
{
if (contentType.Contains("application/json"))
{
wc.OutgoingResponse.ContentType = "application/json";
wc.OutgoingResponse.Format = WebMessageFormat.Json;
}
else
{
wc.OutgoingResponse.ContentType = "text/xml";
wc.OutgoingResponse.Format = WebMessageFormat.Xml;
}
}
return new Person { id = 102, Dob = DateTime.Now.AddYears(-40), Name = "Peter"};
}
}
}
5) Service2.svc
<%@
ServiceHost
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
Service="WcfService1.Class1"
%>
ServiceHost
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
Service="WcfService1.Class1"
%>
6) In Web.config
<system.serviceModel>
<services>
<service name="WcfService1.Class1">
<endpoint binding="webHttpBinding"
contract="WcfService1.Interface1"
behaviorConfiguration="restBehaviour"
></endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="restBehaviour">
<webHttp helpEnabled="true" faultExceptionEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<services>
<service name="WcfService1.Class1">
<endpoint binding="webHttpBinding"
contract="WcfService1.Interface1"
behaviorConfiguration="restBehaviour"
></endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="restBehaviour">
<webHttp helpEnabled="true" faultExceptionEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
6) Just run http://localhost:port/Service2.svc
U will get help page
7) How to consume WCF Rest Service JSON format
Uri uri = new Uri("http://localhost:23454/Service2.svc/GetPerson");WebClient client = new WebClient();
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
Stream jsonSTream=
client.OpenRead(uri);
StreamReader reader =
new StreamReader(jsonSTream);
String strPerson=reader.ReadToEnd();
Console.WriteLine(strPerson);
Console.ReadLine();
JSON OUTPUT:
{"Dob":"\/Date(120135205873-0700)\/","Name":"Peterapplication\/json","id":102}
7) How to consume WCF Rest Service XML format
Uri uri = new Uri("http://localhost:23454/Service2.svc/GetPerson");WebClient client = new WebClient();
client.Headers.Add(HttpRequestHeader.ContentType, "text/xml");
Stream jsonSTream=
client.OpenRead(uri);
StreamReader reader =
new StreamReader(jsonSTream);
String strPerson=reader.ReadToEnd();
Console.WriteLine(strPerson);
Console.ReadLine();
XML Output:
<Person xmlns="http://schemas.datacontract.org/2004/07/WcfService1" xmlns:i="htt
p://www.w3.org/2001/XMLSchema-instance"><Dob>1973-10-22T03:53:29.6915206-07:00</
Dob><Name>Petertext/xml</Name><id>102</id></Person>
Flags:How to create and consume wcf rest service in C#, How to consume wcf rest service through headers.
How to create wcf rest service for xml and json formats,
How to create wcf rest service for combined formats xml and json.How to create and consume wcf rest service inasp.net
No comments:
Post a Comment