Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

Thursday 30 June 2016

How to Consume RESTFul Service by passing complex type Object/parameters in wcf post method in C# Asp.Net

Firstly you need create a class if you want to send a complex object in WCF REST service request .Here is sample:
  public class Artist
    {
       
        public string SearchArtist { get; set; }
        public string State { get; set; }
        public string Suburb { get; set; }
        public string Postcode { get; set; }
        public DateTime DateForm { get; set; }
        public DateTime? DateTo { get; set; }
        public int TotalEventsToReturn { get; set; }

    }

Now import the following  namespace in your project
using System.Web.Script.Serialization;
and just copy and paste below code in your project
private void getArtist()
        {
           //Create object of Artist class
            Artist artist = new Artist();
            artist.DateForm = DateTime.UtcNow;
            artist.Postcode = "2000";
            artist.SearchArtist = "artistname";
            artist.State = "NSW";
            artist.Suburb = "Sydney";
            artist.TotalEventsToReturn = 80;
          
//If you want to add root name as well in your Json request then you need to                          write below code as well otherwise you can skip this code
            dynamic collectionWrapper = new
            {
                artist = artist
            };
          //Create JavaScriptSerializer  object to serialize artist object to Json string
            JavaScriptSerializer js = new JavaScriptSerializer();
          // Json string after serialization
            string json = js.Serialize(collectionWrapper);
   // Make a http web request with URL
            var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://local.liveguide.com.au/LiveGuideDataAPI.svc/GetArtistEvents");
// Set content type such as Json,Xml for response
            httpWebRequest.ContentType = "application/json; charset=utf-8";
            httpWebRequest.Method = "POST";

            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                streamWriter.Write(json);
                streamWriter.Flush();
            }
 //Set header such as AccessToken or API Key, these are the confidential     information so need to send in Header. If you don’t need to send any such information than simply remove this code
            httpWebRequest.Headers.Add("AccessToken", "5347-c48b-4803-9056-6869");
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
              // Result as response for WCF Service
                var result = streamReader.ReadToEnd();
            }
        }
Noteè If you are getting compile time error ‘One or more types required to compile a dynamic expression cannot be found. Are you missing a reference?’ then you just need reference of  Microsoft.CSharp from assembly


No comments:

Post a Comment