powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как передать в HttpClient.PostAsync сложный контент
10 сообщений из 10, страница 1 из 1
Как передать в HttpClient.PostAsync сложный контент
    #39256289
RAVen42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

Не могу понять как правильно передать в PostAsync сложный контент

собственно сам контент:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 private class transaction
        {
            public string company { get; set; }
            public string Num { get; set; }         
            public List<listProduct> listProduct { get; set; }

        }


        public class listProduct
        {            
            public float Price { get; set; }
            public float Amount { get; set; }
            public float Cost { get; set; }

        }



Последний попробованный вариант :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
....
  List<transaction> tran = new List<transaction>();
  
 /*заполняем tran данными*/
 ....


 dynamic content = JsonConvert.SerializeObject(tran);
 var response = HttpClient.PostAsync(APP_PATH + "/api/books", content).Result;
....



ошибка:
Код: c#
1.
System.Net.Http.HttpClient.PostAsync(string,System.Net.Http.HttpContent) has some invalid arguments



Что собственно и следовало ожидать

Вопрос, как всё-таки передавать сложные объекты???
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256311
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAVen42, проблема с параметром content - он задан неверно.
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256313
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример Вам:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;

namespace Demo
{
    public class Example
    {
        public async void AsyncPost()
        {
            var values = new Dictionary<string, string>();
            values.Add("ThisIs", "Annoying");
            var content = new FormUrlEncodedContent(values);

            using (var client = new HttpClient())
            {
                try
                {
                    var httpResponseMessage = await client.PostAsync("http://SomeUrl.somewhere", content);

                    if (httpResponseMessage.StatusCode == HttpStatusCode.OK)
                    {
                        // Do something...
                    }
                }
                catch (OperationCanceledException) { }
            }
        }
    }
}
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256317
RAVen42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Axeleron , мне не надо в контент передавать Dictionary<string, string>();
мне надо передать объект transaction
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256325
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAVen42, приведите серверную часть кода.
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256330
RAVen42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 public IHttpActionResult Postt_transactions(transaction transaction)
 {
   ...
 }

private class transaction
        {
            public string company { get; set; }
            public string Num { get; set; }         
            public List<listProduct> listProduct { get; set; }

        }


        public class listProduct
        {            
            public float Price { get; set; }
            public float Amount { get; set; }
            public float Cost { get; set; }

        }
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256338
RAVen42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос не в серверной части (в данном случае), а в том как передать сложный объект.
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256348
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAVen42, тогда пример
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256879
RAVen42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось передать так
Вроде передать удалось, а вот на серверной части поймать не получается
параметры пустыми остаются
...
Рейтинг: 0 / 0
Как передать в HttpClient.PostAsync сложный контент
    #39256948
RAVen42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось вот по этому методу

т.е. надо было делать так :

var response = client.PostAsJsonAsync< transaction >(APP_PATH + "/api/t_transactions/ExtendedInformation", tran).Result;
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как передать в HttpClient.PostAsync сложный контент
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]