public void Post(string apiRoute, ApiRequestContext context, int timeout) { var request = System.Net.WebRequest.Create(_domain + '/' + apiRoute); request.Method = "POST"; request.ContentType = "application/json"; request.Timeout = timeout; using (var sw = new System.IO.StreamWriter(request.GetRequestStream())) { var serializer = new JsonSerializer(); serializer.Serialize(sw, context); } var ts = new System.Threading.ThreadStart(() => { try { var response = request.GetResponse() as System.Net.HttpWebResponse; using (var stream = response.GetResponseStream()) { using (var reader = new System.IO.StreamReader(stream, Encoding.UTF8)) { var responseString = reader.ReadToEnd(); var responseObject = JObject.Parse(responseString); Code = responseObject.Get <int>("Code"); Message = responseObject.Get <string>("Message"); if (Code >= 0) { Value = responseObject.SelectToken("Value"); } } } } catch (Exception e) { Code = -505; Message = e.Message; } finally { Responsed?.Invoke(this); } if (Code < 0) { ResponseError?.Invoke(this); } else { ResponseOK?.Invoke(this); } }); new System.Threading.Thread(ts).Start(); }
public void Execute() { try { using (var sw = new System.IO.StreamWriter(_request.GetRequestStream())) { var serializer = new JsonSerializer(); serializer.Serialize(sw, _context); } var response = _request.GetResponse() as System.Net.HttpWebResponse; using (var stream = response.GetResponseStream()) { using (var reader = new System.IO.StreamReader(stream, Encoding.UTF8)) { var responseString = reader.ReadToEnd(); var responseObject = JObject.Parse(responseString); Code = responseObject.Get <int>("Code"); Message = responseObject.Get <string>("Message"); if (Code >= 0) { Value = responseObject.SelectToken("Value"); } } } } catch (Exception e) { Code = -505; Message = e.Message; } finally { Responsed?.Invoke(this); } if (Code < 0) { ResponseError?.Invoke(this); } else { ResponseOK?.Invoke(this); } }