b

Tuesday 22 October 2013

How to create and consume wcf rest service in C#

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;

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;}
    }
}
}

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"};
        }
    }
}


5) Service2.svc


<%@
    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>

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