Форум программистов, компьютерный форум 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. Просмотров 567. Ответов 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
                };
            }
        }
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 ASP.Net Web API Service в Windows Phone: нужны примеры
Windows Phone Аналог ShellExecute() в C++/Cx, WinRT, Windows 10, Universal Windows Platform
Как сделать GET и POST запрос и получить ответ Windows Phone
Windows Phone Windows Runtime и Phone Runtime App: событие Suspend
Windows Phone Как реализовать GET и POST запросы в Windows Phone 8?
Windows Phone Windows Phone постинг через api
Где найти API для работы с речью в Windows Phone 7? Windows Phone
Windows Phone Сохранение изображений из RSS в App Studio
C# MVC Как распарсить POST запрос с динамическими данными в WEB API?
C# Создание/запись в файл. Universal Windows App
PHP Сети Отправить POST запрос

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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