private string SimpleHttpPostCreateDocument(string uri, string body)
{
var responseBody = "";
var httpRequest = HttpWebRequest.CreateHttp(uri);
httpRequest.KeepAlive = true;
httpRequest.SendChunked = false;
httpRequest.Method = "POST";
httpRequest.UserAgent = ASettings.DriverName + "/" + ASettings.DriverVersion;
/*if (!string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password))
{
httpRequest.Headers.Add(
"Authorization",
"Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(Username + ":" + Password))
);
}*/
if (!string.IsNullOrEmpty(body))
{
httpRequest.ContentType = "application/json; charset=utf-8";
var data = Encoding.UTF8.GetBytes(body);
var stream = httpRequest.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Flush();
stream.Close();
stream.Dispose();
}
else
{
httpRequest.ContentLength = 0;
}
try
{
using (var httpResponse = (HttpWebResponse)httpRequest.GetResponse())
{
var responseStream = httpResponse.GetResponseStream();
var reader = new StreamReader(responseStream);
responseBody = reader.ReadToEnd();
reader.Close();
reader.Dispose();
responseStream.Close();
responseStream.Dispose();
}
}
catch (WebException webException)
{
if ((webException.Status == WebExceptionStatus.ProtocolError) &&
(webException.Response != null))
{
using (var exceptionHttpResponse = (HttpWebResponse)webException.Response)
{
if (exceptionHttpResponse.ContentLength > 0)
{
using (var exceptionResponseStream = exceptionHttpResponse.GetResponseStream())
using (var exceptionReader = new StreamReader(exceptionResponseStream))
{
responseBody = exceptionReader.ReadToEnd();
}
}
}
}
else
{
throw;
}
}
return responseBody;
}