0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 9
|
|
1 | |
Как правильно написать REST клиент с авторизацией?24.02.2016, 06:59. Показов 3733. Ответов 14
Метки нет (Все метки)
Добрый день.
Я не очень уверен, в правильную ли ветку написал запрос, возможно она "для новичков", но вопрос больше к Веб-сервисам. Есть задача - написать консольное приложение, которое бы отправляло REST запрос и показывало результат (заменить ручной труд). Задача вроде бы простая, но есть три "но" 1.Для получения данных сейчас используется следующая цепочка действий: - открывается специальная страница в браузере, вводится логин\пароль, нажимается кнопка "OK", юзер попадает на следующую страницу (с Hello World), после этого окрывается Dev Tools в браузере и копируются куки - открывается Postman и туда пишется запрос к endpoint и в поле авторизации ставятся эти куки. (Точнее postman сам умеет их вытягивать с сайта - я для ущербности процесса описал) 2.На другом конце сидит oData и отвечает на запросы. В принципе для нее есть как Microsoft библиотека, так и сторонняя (которую считают более удачной). Но для начала надо разобраться с пунктом 1 3.Я открыл C# третий раз в жизни две недели назад и честно говоря "слегка в замешательстве" (пара лет питонячества дает о себе знать) активное гугление позволило написать свой кривой клиент который умеет коннектиться и получать данные где либо вообще нет авторизации, либо она ограниченна "логином и пассвордом" без всяких кукисов. Хотя честно признаюсь - была тщетная попытка захардкодить куки...не помогло Как я понимаю - в клиенте должно быть два запроса - один для получения cookie к первому адресу, а второй непосредственно к интересуемому end point. Была мысль коннектится к "живому" браузеру за cookies специально - но выглядит затея диковато. Но как это реализовать - это пока выше моих познаний в языке. Буду признателен за любую помощь и совет.
0
|
24.02.2016, 06:59 | |
Ответы с готовыми решениями:
14
Как правильно написать клиент? Как сделать клиент-серверное приложение с авторизацией и гарантированной доставкой информации? Как правильно организовать spa с авторизацией? Клиент приложение с авторизацией вк |
24.02.2016, 08:30 | 2 |
Она скорее не простая, а поставленная не совсем четко.
Скажите что требуется, какой тип приложения. Клиент-серверное, или браузер-серверное? Что касается именно REST - ниже ссылка на пример, где пошагово показывается создание службы. Но у WCF на данный момент столько вариаций, что можно запутаться. Лучше расскажите подробно, что требуется, как клиент и сервер будут взаимодействовать. Тогда будет проще что-то предложить. http://www.codeproject.com/Art... Step-Guide
0
|
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 9
|
|
24.02.2016, 09:05 [ТС] | 3 |
На самом деле задача стоит так "нужно создать framework для тестирования web-services" - это глобально. На данный момент у меня стоит задача более узко - научиться коннектиться к сервису, отправлять на него структурированные запросы и проверять их корректность. Например представим, что есть задача: проверить, что есть в базе 10 компаний. URI запроса www.server.com/country/product/company. Соответственно для меня сейчас стоит задача просто пройти проверку, послать запрос, получить ответ и вывести его на консоль. Пока самое простое - механизм авторизации и получения данных
Рисование тестов - шаг номер два Добавлено через 6 минут для начального понимания как это делается я использовал http://www.codeproject.com/Tip... ith-Csharp и в итоге это заработало для случая когда не требуется никакая авторизация. И для начало мне хотяб "Допилить" этот код под мою схему авторизации. Это даст мне время разобраться уже более основательно с вопросом...
0
|
24.02.2016, 10:00 | 4 |
Это даже более чем глобально, поскольку даже мне (с моим небольшим опытом) видится, как минимум два варианта тестирования: когда адреса служб и все методы контракта известны (тогда в этом нет ничего сложного) и тогда, когда известна только часть данных (например, контракт службы) и тогда задача усложняется, поскольку надо найти службу или службы в сети, проверить их на соответствие критериям поиска, получить метаданные и уже проанализировав их работать со службами.
Вы хотите написать свой механизм авторизации? Если так, это делается очень просто.
0
|
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 9
|
|
24.02.2016, 18:03 [ТС] | 5 |
Ну я не спорю что это просто...ну если иметь опыт ;-( а если его нету то уже сложнее. и я был бы очень благодарен за любую подсказку
...для начала хотябы понять как передать "захардкоженые" куки
0
|
24.02.2016, 18:48 | 6 |
Могу набросать простенькую авторизацию-регистрацию на сервере через WCF. Если надо, можно попробовать сделать это через WCF HTTP (по правде говоря, не делал так еще, но там все то же самое, основные принципы те же).
1
|
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 9
|
|
24.02.2016, 19:31 [ТС] | 7 |
О. Это было бы здорово, если вас не затруднит. У нас сильный лаг по времени, поэтому я могу отвечать с задержкой. Насчёт фреймворка - ну у меня будет описание всех запросов - это не проблема
0
|
26.02.2016, 12:00 | 8 |
mrmax, извиняюсь за задержку, был занят.
В архиве тестовый вариант клиента и файлы с кодом самой службы. Все файлы кода службы работают, за единственным исключением - строка соединения с БД там убрана. Точно такая служба сейчас размещена в сети, так что можете побаловаться с клиентом, проверить его работу. И еще, это - именно служба WCF, без использования HTTP. Я немного почитал по именно этому направлению, сделать это не сложно (и я даже немного переделывал службу при написании под использование HTTP), но вернул назад, поскольку для проверки требуется уметь посылать нужные запросы из браузера (такие как к примеру POST), а я с Html чуть хуже чем совсем никак. Так что вам можно будет применить нужные атрибуты к операциям контракта (WebGet, WebInvoke) и вместо передачи объектов в операциях использовать строковые значения. Зайдите на любую страницу справки MSDN и введите в строке поиска WCF HTTP, там будут ссылки на примеры простых служб.
0
|
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 9
|
|
28.02.2016, 01:48 [ТС] | 9 |
спасибо большое!!!
а может можно как то вам в личку писать вопросы (так как они могут быть не совсем для публичного проссмотра по ряду причин)
0
|
2 / 2 / 1
Регистрация: 22.09.2014
Сообщений: 132
|
|
29.02.2016, 23:18 | 11 |
insite2012, сори если не по теме, но вы бы не могли более подробно рассказать о дирректории IIS Files.
Ну то есть как ОНА создается и как работает. Потому, что у меня тоже стоит задача удаленной работы серверной части. Где вы хостите свой код и все такое. Если долго писать, можно ссылками. Открыл .sln и не совсем могу понять как создавалачь часть IIS.
0
|
29.02.2016, 23:33 | 12 |
Без проблем. Для начала, надо включить IIS на вашем компьютере. Делается через панель управления, установка и удаление программ (или Программы и компоненты), и дальше пункт Включение и отключение компонентов Windows. Там отметить галочку на Службы IIS.
После этого у вас на диске С будет папка с именем inetpub, в ней папка с именем wwwroot. Это и есть виртуальный IIS сервер. Теперь по созданию службы. Проект создавать не надо. В меню нажимаете Файл, создать, Веб-узел, выбираете Служба WCF. Выбираете расположение (в папке на диске, в FTP или IIS). Я всегда выбираю IIS, чтобы иметь возможность тут же писать клиента и из него обращаться к службе. В виртуальном каталоге IIS будет создана папка с именем вашей службы, в ней будет две папки (App_Code, App_Data) и два файла (Web.config, Service.svc). Вот и все. Так же будет создан шаблонный контракт службы и класс с его реализацией. Вы можете его переделать как вам надо. Потом пишете клиента, в нем адрес вашей службы такого вида http://localhost/<Имя_вашей_службы>/Service.svc И можете из клиента работать со службой. Для переноса на сервер в сети достаточно эти две папки и два файла перенести на сетевой хост и изменить адрес в клиенте. Вроде бы все рассказал. Если будут вопросы-напишете.
1
|
2 / 2 / 1
Регистрация: 22.09.2014
Сообщений: 132
|
|
01.03.2016, 00:23 | 13 |
Подскажи - это оно???
потому что такого у меня нет. Хоть я и установил IIS через панель инструментов.
0
|
2 / 2 / 1
Регистрация: 22.09.2014
Сообщений: 132
|
|
01.03.2016, 01:36 | 14 |
Вроде как нашел. Спасибо.
0
|
01.03.2016, 07:00 | 15 |
0
|
01.03.2016, 07:00 | |
01.03.2016, 07:00 | |
Помогаю со студенческими работами здесь
15
Клиент для DropBox REST API На localhost клиент не получает данные от rest api Как правильно реализовать клиент-серверное приложение? Dir320NRU\b5 , как wi-fi - клиент (прописать правильно адреса) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |