Thursday, 7 August 2014

Http JSON web request

Http Web request example here


Here need to send the Json by HttpWebrequest just for reference  :
public static class EventSender
{
    static JToken current_item;

    public static void Run(JToken json)
    {

        SendEvent(json);
    }
    static void SendEvent(JToken item)
    {
        var orgId = item.Children<JProperty>().FirstOrDefault(x => x.Name == "orgId").Value;
        var sessionId = item.Children<JProperty>().FirstOrDefault(x => x.Name == "sessionId").Value;
        var drcId = item.Children<JProperty>().FirstOrDefault(x => x.Name == "drcId").Value;
        var wkt = item.Children<JProperty>().FirstOrDefault(x => x.Name == "wkt").Value;
        string baseURL = "URL HERE?";
        StringBuilder urlBuilder = new StringBuilder().Append(baseURL);
        urlBuilder.Append("orgId=" + orgId);
        urlBuilder.Append("&sessionId=" + sessionId);
        urlBuilder.Append("&drcId=" + drcId);
        urlBuilder.Append("&wkt=" + wkt);

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlBuilder.ToString());
        req.Method = "POST";
        req.ContentType = "application/json;charset=utf-8"; 
        req.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), req);
    }
    static void GetRequestStreamCallback(IAsyncResult asynchronousResult)
    {
        var json = current_item.Children<JProperty>().FirstOrDefault(x => x.Name == "json").Value;
        try
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
            Stream postStream = request.EndGetRequestStream(asynchronousResult);
            //string postData = JsonConvert.SerializeObject(json).ToString();
            //byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            //byte[] byteArray = Encoding.UTF8.GetBytes(json.ToString());
            //postStream.Write(byteArray, 0, byteArray.Length);
            postStream.Close();
            //Start the web request
            request.BeginGetResponse(new AsyncCallback(GetResponceStreamCallback), request);
        }
        catch (Exception err)
        {
            Debug.WriteLine(err.Message);
        }
    }
    static void GetResponceStreamCallback(IAsyncResult callbackResult)
    {

        HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
        HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult);
        using (StreamReader httpWebStreamReader = new StreamReader(response.GetResponseStream()))
        {
            string result = httpWebStreamReader.ReadToEnd();

        }

    }
}


here download another example 
another source sample here

No comments:

Post a Comment