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

Не могу понять как правильно передать в 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
15.06.2016, 13:08
    #39256311
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
RAVen42, проблема с параметром content - он задан неверно.
...
Рейтинг: 0 / 0
15.06.2016, 13:09
    #39256313
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
Пример Вам:
Код: 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
15.06.2016, 13:14
    #39256317
RAVen42
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
Axeleron , мне не надо в контент передавать Dictionary<string, string>();
мне надо передать объект transaction
...
Рейтинг: 0 / 0
15.06.2016, 13:23
    #39256325
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
RAVen42, приведите серверную часть кода.
...
Рейтинг: 0 / 0
15.06.2016, 13:30
    #39256330
RAVen42
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
Код: 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
15.06.2016, 13:39
    #39256338
RAVen42
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
Вопрос не в серверной части (в данном случае), а в том как передать сложный объект.
...
Рейтинг: 0 / 0
15.06.2016, 14:00
    #39256348
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
RAVen42, тогда пример
...
Рейтинг: 0 / 0
16.06.2016, 10:41
    #39256879
RAVen42
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
Получилось передать так
Вроде передать удалось, а вот на серверной части поймать не получается
параметры пустыми остаются
...
Рейтинг: 0 / 0
16.06.2016, 11:25
    #39256948
RAVen42
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать в HttpClient.PostAsync сложный контент
Получилось вот по этому методу

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

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


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