Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
griboyedov
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 111
1

Как сделать Put-запрос?

17.12.2017, 12:00. Просмотров 301. Ответов 4

Привет всем! Есть на сервере метод Edit, который изменяет данные

C#
1
2
3
4
5
        [HttpPut]
        public void Edit(int index, [FromBody]PassModel passModel)
        {
            Repository.Edit(passModel.ToPass(), index);
        }
А есть desktop-клиент, который обращается к этому методу.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:50825");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 
                HttpResponseMessage response;
                PassModel Pass=new PassModel();
                response = await client.PutAsJsonAsync("api/pass/edit", Pass);
                if (response.IsSuccessStatusCode)
                {
                   //
                }
            };
Как прописать в строке "await client.PutAsJsonAsync("api/pass/edit", Pass);" Pass и index?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2017, 12:00
Ответы с готовыми решениями:

Как мне дать ссылку на значение переменной put в БД?
У меня в поле catalog храниться ссылка на определенный файл, я делаю следующие...

Как сделать запрос по field (smalldatetype) ?
kak sdelat zapros po field(smalldatetype), naprimer mezhdu dvuma datami:...

Как сделать запрос доменных имен whois
Есть какой-нибудь код или компонента для запроса доменных имен whois? И каким...

Можно ли сделать как бы двойной SQL запрос к базе?
Мне нужно сначала выполнить выборку всех записей из БД и отсортировать их по...

Как сделать запрос по ссылке через определенное время?
Как сделать так, чтобы через опред-ое время формировался запрос по ссылке - у...

4
OwenGlendower
Супер-модератор
Эксперт .NET
9476 / 8286 / 3546
Регистрация: 17.03.2014
Сообщений: 16,500
Записей в блоге: 1
17.12.2017, 12:09 2
griboyedov, pass ты уже прописал. index нужно указать в адресе
C#
1
await client.PutAsJsonAsync("api/pass/edit/123", Pass);
1
griboyedov
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 111
18.12.2017, 13:02  [ТС] 3
OwenGlendower, что-то не получилось. Может есть другой вариант?
0
OwenGlendower
Супер-модератор
Эксперт .NET
9476 / 8286 / 3546
Регистрация: 17.03.2014
Сообщений: 16,500
Записей в блоге: 1
18.12.2017, 13:54 4
griboyedov, может у тебя не JSON? Попробуй передавать данные с помощью FormUrlEncodedContent
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:50825");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 
                HttpResponseMessage response;
                PassModel Pass=new PassModel();
                var content = new FormUrlEncodedContent(new Dictionary<string, string> {
                    { "name1", Pass.Name1 },
                    { "name2", Pass.Name2 },
                    { "name3", Pass.Name3 }
                });                
                response = await client.PutAsync("api/pass/edit", content);
                if (response.IsSuccessStatusCode)
                {
                   //
                }
            }
Добавлено через 2 минуты
Если объект сложный, то можно автоматизировать перевод модели в FormUrlEncodedContent с помощью reflection или с помощью JSON.NET.
0
griboyedov
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 111
18.12.2017, 18:04  [ТС] 5
OwenGlendower, если я пропишу так (мне кажется, что так правильно):

C#
1
response=await client.PutAsJsonAsync("api/pass/"+index, Pass);
То вылетает 405 ошибка.
0
18.12.2017, 18:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2017, 18:04

Как сделать запрос через Socks5 proxy на либе xnet?
Собсна сабж. public string GetResponseString(string gate, string command) ...

Как на VBScript сделать запрос по заданной ссылке и вернуть состояние сервера?
Всем привет! Очень спасибо кто смотрит... у меня есть IIS на нём HTML он...

Как сделать запрос к базе и вывести на страничке с помощью ASP тегов?
Изучаю ASP. Создал в Visual Studio базу данных mydb на Microsoft SQL Server...


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

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

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