Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
megalexa
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 34
#1

Отправить POST-запрос (web api) с Universal windows app - Windows Phone

02.12.2014, 14:56. Просмотров 583. Ответов 0
Метки нет (Все метки)

Здравствуйте.

Есть сервис (ApiController для MVC):

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[HttpPost]
        public OperationResult InsertUser([FromBody]string user)
        {
            try
            {
                var userObj = JsonConvert.DeserializeObject<User>(user);
                _userRepository.InsertUser(userObj);
            }
            catch (Exception ex)
            {             
                return new OperationResult
                {
                    OperationState = OperationState.Failed,
                    ErrorMessage = ex.Message + user
                };
            }
 
            return new OperationResult
            {
                OperationState = OperationState.Success,
            };
        }
И есть Universal windows app, пытаюсь оттуда послать Post-запрос:

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
32
33
34
 public static void AddUser()
        {
            var currentUser = UserRepository.GetUser();
 
            if (currentUser != null)
            {
                var userByJson = JsonConvert.SerializeObject(currentUser);
                var webRequest = (HttpWebRequest)WebRequest.Create("!!!");
 
                webRequest.Method = "post";
                webRequest.ContentType = "application/json";
 
                IAsyncResult getRequestStream = webRequest.BeginGetRequestStream(null, null);
 
                using (var writer = new StreamWriter(webRequest.EndGetRequestStream(getRequestStream)))
                {
                    writer.Write(userByJson);
                }
 
                webRequest.BeginGetResponse(OnAsyncCallback, webRequest);
 
                return;
            }
 
            throw new Exception();
        }
 
        private static void OnAsyncCallback(IAsyncResult asyncResult)
        {
            var httpWebRequest = (HttpWebRequest)asyncResult.AsyncState;
            WebResponse response = httpWebRequest.EndGetResponse(asyncResult);
            var reader = new StreamReader(response.GetResponseStream());
            string log = reader.ReadToEnd();
        }
После выполнения, log принимает значение:
"{\"OperationState\":1,\"ErrorMessage\":\"Value cannot be null.\\r\\nParameter name: value\"}"

Что не так? почему не получается передать объект?

Добавлено через 3 часа 8 минут
Решено, оказывается сервис должен принимать объект, а не сериализованную строку:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[HttpPost]
        public OperationResult InsertUser(User user)
        {
            try
            {
                //var userObj = JsonConvert.DeserializeObject<User>(user);
                var currentId = _userRepository.InsertUser(user);
 
                return new OperationResult
                {
                    OperationState = OperationState.Success,
                    SpecialInfo = currentId
                };
            }
            catch (Exception ex)
            {             
                return new OperationResult
                {
                    OperationState = OperationState.Failed,
                    ErrorMessage = ex.Message
                };
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2014, 14:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отправить POST-запрос (web api) с Universal windows app (Windows Phone):

Ограничить размер окна в WinRT ( Universal App, Win10 AppStore, VS 2015, C++ ) - Windows Phone
Пытаюсь найти функционал, который позволяет изначально задать необходимый размер главного окна и запрещает resizing. После долгих раскопок...

ASP.Net Web API Service в Windows Phone: нужны примеры - Windows Phone
Использовал ли кто-нибудь ASP.Net Web API Service in Windows Phone, если есть примеры(простые), можете выложить сюда?

Аналог ShellExecute() в C++/Cx, WinRT, Windows 10, Universal Windows Platform - Windows Phone
Делаю программку для десктопа, но поскольку речь идет об Universal Windows Platform, то концепция с Windows Phone одна. Мне нужно...

Разница в Windows Phone Silverlight App и Windows Phone App - Windows Phone
Доброго вам времени суток, товарищи! Возможно вопрос дурацкий, но я не смог для себя уяснить в чём разница и под что лучше разрабатывать...

Как распарсить POST запрос с динамическими данными в WEB API? - C# MVC
Добрый день. У меня во вьюшке скрип генерирует заранее не известное кол-во данных, и потом посылает их пост запросом. Нашел статью где...

Создание/запись в файл. Universal Windows App - C#
Помогите, пожалуйста со следующей проблемой. При использовании методов File.Create(&quot;sav.txt&quot;); File.WriteAllText(&quot;sav.txt&quot;,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2014, 14:56
Привет! Вот еще темы с ответами:

Отправить POST запрос - C++
Помогите уже, реально задолбался, 2 дня уже ищу рабочий код который бы отправлял пост запрос но никак не могу найти. Везде какие-то либы...

Отправить POST запрос - PHP Сети
Подскажите, как лучше отправить запрос с такими параметрами $header = 'POST /new/ HTTP/1.1'.&quot;\r\n&quot;. 'Host: my.host.ru'.&quot;\r\n&quot;. ...

Отправить данные из VB в cgi-программу методом POST через web - Visual Basic
Есть необходимость отправить данные из VB в cgi-программу методом POST через web. Кто подскажет, как реализовать?.. ivanov545@mail.ru

Как отправить Post запрос - C# WPF
Здравствуйте ув. форумчане. Прошу вашей помощи,мучаюсь с этим уже долго,но никак не могу найти ответа. Как отправлять Post запросы в C#...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru