HTTPClient Post Request с заголовками и телом - PullRequest
0 голосов
/ 26 мая 2019

Я хочу установить тип содержимого и заголовки авторизации с помощью HttpClient и хочу загрузить XML-файл для тела (запроса) и отправить запрос Post.

Я искал объединение заголовков и тела для запроса Post.

Настройка заголовков с использованием HttpRequestMessage.

   HttpClient clientTest = new HttpClient();

   HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Post,url);


   httpRequest.Content = new StringContent(string.Empty, Encoding.UTF8, "application/vnd.citrix.sessionparams+xml");
   httpRequest.Headers.Authorization = new AuthenticationHeaderValue("CitrixAuth", "H4sIAAAAAAAEAK1X2Y6jyBL9lZLnEbnZt1J");

Настройка тела xml -

XDocument xml = XDocument.Load("RequestSession.xml");

Преобразование в Document.ToString ()

var httpContent = new StringContent(xml.Document.ToString(), Encoding.UTF8, "application/vnd.citrix.sessionstate+xml");

Пожалуйста, помогите мне с объединением заголовков и тела для почтового запроса с использованием HttpClient.

1 Ответ

0 голосов
/ 26 мая 2019

Я не знаю, является ли это действительным запросом на услугу, которую вы вызываете, но для установки заголовков и тела и отправки запроса это будет выглядеть так:

HttpClient clientTest = new HttpClient();

HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Post,url);

httpRequest.Content = new StringContent(xml.Document.ToString(), Encoding.UTF8, "application/vnd.citrix.sessionstate+xml");
httpRequest.Headers.Authorization = new AuthenticationHeaderValue("CitrixAuth", "H4sIAAAAAAAEAK1X2Y6jyBL9lZLnEbnZt1J");

var response = await clientTest.SendAsync(httpRequest);

Если вы получите 400Неверный запрос, потому что то, что вы отправляете, не подходит для API, а не из-за как вы его отправляете.

...