blob: cc6b5e72b2a0df668f2ce397b5c2bfe6f4738eb1 [file] [log] [blame]
using Newtonsoft.Json;
using System;
using System.Net;
using System.Text;
namespace BaSys40.Utils.Client.Http
{
public class LegacyHttpClient
{
private static readonly JsonSerializerSettings jsonSerializerSettings;
static LegacyHttpClient()
{
jsonSerializerSettings = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented };
}
public HttpWebRequest CreateRequest(Uri uri, string method, object content)
{
var request = WebRequest.CreateHttp(uri);
request.Method = method;
request.Accept = "application/json";
if (content != null)
{
string body = JsonConvert.SerializeObject(content, jsonSerializerSettings);
if (!string.IsNullOrEmpty(body))
{
var payload = Encoding.ASCII.GetBytes(body);
request.ContentType = "application/json";
request.ContentLength = payload.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(payload, 0, payload.Length);
}
}
}
return request;
}
private HttpWebResponse SendRequest(HttpWebRequest request)
{
try
{
var response = (HttpWebResponse)request.GetResponse();
return response;
}
catch (Exception e)
{
Console.Out.WriteLine(e.Message);
if (e is WebException)
return (HttpWebResponse)((WebException)e).Response;
else if (e.InnerException != null && e.InnerException is WebException)
return (HttpWebResponse)((WebException)e.InnerException).Response;
return null;
}
}
}
}