public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } if (JsonRequestBehavior == JsonRequestBehavior.DenyGet && string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)) { throw new InvalidOperationException("JSON GET is not allowed"); } HttpResponseBase response = context.HttpContext.Response; response.ContentType = string.IsNullOrEmpty(this.ContentType) ? "application/json" : this.ContentType; if (ContentEncoding != null) { response.ContentEncoding = this.ContentEncoding; } if (Data == null) { return; } var json = JsonNetHelper.Serialize(this.Data); response.Write(json); }
private T SendCommand <T>(Uri endpoint, object payload = null) where T : class { var httpWebRequest = (HttpWebRequest)WebRequest.Create(endpoint); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.Accept = "application/json"; httpWebRequest.Headers.Add(ServerConfiguration.Headers.Version, (typeof(ServerChannel).Assembly.GetName().Version.ToString())); httpWebRequest.Headers.Add(ServerConfiguration.Headers.WorkerRegistrationToken, Token.HasValue?Token.ToString():""); using (var writer = new StreamWriter(httpWebRequest.GetRequestStream())) { writer.Write(JsonNetHelper.Serialize(payload)); } using (var reader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream())) { var body = reader.ReadToEnd(); try { return(JsonNetHelper.Deserialize <T>(body)); } catch (JsonException ex) { Logger.Error(ex); Logger.Error(body); throw; } } }
public static T SendRequest <T>(Uri endpoint, object payload = null) where T : class { var httpWebRequest = (HttpWebRequest)WebRequest.Create(endpoint); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.Accept = "application/json"; httpWebRequest.Headers.Add(ServerConfiguration.Headers.Version, typeof(Program).Assembly.GetName().Version.ToString()); using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(JsonNetHelper.Serialize(payload)); streamWriter.Flush(); streamWriter.Close(); var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); return(JsonNetHelper.Deserialize <T>(result)); } } }