Это мой метод, asyn c HTTP POST:
using System; //main data types
using System.Net.Http; //for HTTP client
using System.Threading.Tasks; //for Async Request/Response
using Newtonsoft.Json; //for JSON properties
//... the call..
public void Something()
{
PostConsentAsync(cnsnt.BaseURL, cnsnt.Headers, cnsnt.Body).GetAwaiter().GetResult();
}
//... the async task...
public async Task HttpPostAsync(Uri HTTPaddress, cHeaders myHeaders, cBody myBody)
{
try
{
HttpClient client = new HttpClient();
System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true);
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, HTTPaddress))
{
client.BaseAddress = HTTPaddress;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("*/*"));
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
client.DefaultRequestHeaders.Add("Cache-Control", "no-cache");
client.DefaultRequestHeaders.Add("SomeHeader", myHeaders.SomeHeader);
client.DefaultRequestHeaders.Add("MyOtherHeader", myHeaders.MyOtherHeader);
//etc..
request.Content = new StringContent(JsonConvert.SerializeObject(myBody, Formatting.Indented), utf8, "application/json");
using (HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false))
{
Int32 code = (Int32)response.StatusCode;
//How to read ALL the response, including headers, body etc???
Console.WriteLine("03\r\nRESPONSE: {0}", response.RequestMessage.ToString() + "\r\nBody:\r\n" + <?????> + "Response HTTP status: " + code + " [" + response.StatusCode.ToString() + "]");
Console.ReadLine();
}
}
}
catch (Exception e)
{
Console.WriteLine("Error in " + e.TargetSite + "\r\n" + e.Message); Console.ReadLine();
}
}
Мне нужно прочитать весь ответ, но кажется трудным ... Мне нужно иметь полное ответное сообщение и, в Кроме того, в той или иной форме, как ответ. так что я могу передать это другому HTTP-запросу. Поэтому я пытался получить полный ответ и каким-то образом передать его в классе, и получить что-то вроде response.myHeader1.Name (имя заголовка) или response.myHeader1.Value (значение этого заголовка, ноль, если ноль) et c или что-то в этом роде. Но я не могу получить сообщение целиком, я получаю заголовки, я получаю код (то есть 200 - это успех и c), но тела там нет и c.