private static Task<string> MakeAsyncRequest(byte[] buffer)
{
var request = (HttpWebRequest)WebRequest.Create(APIURL);
request.Method = "POST";
request.ContentType ="application/x-www-form-urlencoded";
request.ContentLength = buffer.Length;
var post = request.GetRequestStream();
post.Write(buffer, 0, buffer.Length);
post.Close();
var task = Task.Factory.FromAsync(
request.BeginGetResponse,
asyncResult => request.EndGetResponse(asyncResult),
null);
return task.ContinueWith(t => ReadStreamFromResponse(t.Result));
}