Як протестувати REST API за допомогою розширення Chrome “Advanced Rest Client”


89

Дотримуючись інструкцій за посиланням нижче, я успішно створив REST API для моєї програми Django: http://django-rest-framework.org/tutorial/quickstart .

Я можу перевірити це, виконавши наступне з підказки Unix:

curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/

Це працює :)

Однак я хотів би використовувати розширення Chrome Advanced Rest Client, щоб перевірити цю саму функціональність. Я встановив розширення, але не знаю, куди / як поставити поля. Коли я роблю свою здогадатися (як ви можете бачити на скріншоті), він відхиляє це твердження "Повноваження автентифікації не були надані"

скріншот невдалого запиту

Як / де я повинен вказати свої параметри в REST API?

Відповіді:


99

Виявленість є похмурою, але досить розумно, як Advanced Rest Client обробляє базову автентифікацію. Згаданий ярлик Авраама для мене не спрацював, але трохи поколупання показало, як це робиться.

Перше, що вам потрібно зробити, це додати Authorizationзаголовок: меню

Потім під час фокусування valueвведення з’являється чудова дрібниця (зверніть увагу на поле «побудувати» внизу праворуч): побудувати значення auth

Натиснувши його, ви побачите вікно. Це навіть робить OAuth, якщо ви хочете! зручні входи

Тада! Якщо ви залишите поле значення пустим, коли ви натискаєте "побудувати", воно додасть до нього Basicчастину (я думаю, воно також додасть необхідні матеріали OAuth, але я не пробував цього, оскільки мої поточні потреби були для базових автентифікація), тому вам не потрібно нічого робити. заповнює поле за потреби


Для базової автентифікації - youtube.com/watch?v=1SP1hgm9JqA . На вкладці "Форма заголовків" додайте заголовок "Авторизація". Це зробить автоматичну пропозицію, як тільки ви почнете друкувати. У цьому значенні натисніть кнопку Редагувати (олівець) і введіть облікові дані автентифікації у спливаючому вікні.
uutsav

10

На скріншоті я бачу, що ви хочете передати службі значення "користувач" та "пароль". Ви надіслали значення параметрів у частині заголовка запиту, що є неправильним. Значення надсилаються в тілі запиту, а не в заголовку запиту. Також ваш синтаксис помилковий. Правильний синтаксис: {"user":"user_val","password":"password_val"}. Також перевірте, який тип вмісту. Він повинен відповідати типу вмісту, який ви встановили для своєї послуги.


7

Це здається дуже старим запитанням, але я даю відповідь, щоб воно могло допомогти іншим. Ви можете вказати змінні на другому екрані в розділі форми, як показано нижче, або у форматі RAW, додавши змінні, як показано на другому зображенні.

Вкажіть змінні форми

Вкажіть у форматі RAW

Якщо значення змінної та змінної є дійсними, у розділі відповідей ви побачите успішну відповідь.


що якщо це запит GET?
Деджелл

Мені довелося встановити заголовок Content-Type явно, зі значенням: application / x-www-form-urlencoded
shasi kanth

6

Формат ярлика, який зазвичай використовується для базової автентифікації http://username:password@example.com/path. Ви також захочете включити в запит заголовок accept.

введіть тут опис зображення


Дякую. Я отримав відповідь, яка включала таке: <p> Не вдалося підтвердити CSRF. Запит скасовано. </p> Як я можу його обійти?
Saqib Ali

Здається, ви не потрапляєте в кінцеву точку API, а натомість натискаєте кінцеву точку, щоб JavaScript потрапив.
Абрахам

Зазвичай це прекрасне рішення - якщо ваш UID або PWD не містить символів ":" або "@".
Blamkin86

Можливо, вам доведеться закодувати URL-адресу імені користувача / пароля, якщо вони містять зарезервовані символи.
Абрахам

Я намагався використати ваше рішення для команди GET на HTTPS, але воно не спрацювало. напр. користувач: @ api.com / v2 / поставок Це працює в завитку. що не так? немає пароля
Деджелл

3

у розділі заголовка ви повинні написати

Авторизація: Основні aG9sY67890vbGNpbQ ==

де рядок після basic - це 64-бітне значення кодування вашого імені користувача: пароль. Прикладом отримання значень заголовка в php є: echo "Авторизація: Основне". base64_encode ("myUser: myPassword");

nb: Я вважав ваш метод автентифікації базовим. які також можуть бути різними.


Питання конкретно задає питання про те, як це зробити у розширенні Chrome Advanced Rest Client.
Shauna

Відповідь Шауни була правильною, і вона повинна бути прийнятою, але цей коментар від sharif також корисний тим, хто цікавиться, що клієнт розширеного відпочинку Chrome зробив для кодування користувача та пароля для вас. Дякую.
Deemoe

3

Додайте заголовок авторизації та натисніть кнопку олівця, щоб ввести ім’я користувача та паролі

введіть тут опис зображення


0

Найпростіший спосіб подолати цю проблему автентифікації - викрасти маркер автентифікації за допомогою Fiddler.

Кроки

  1. Запустіть скрипк і браузер.
  2. Перейдіть у браузер, щоб відкрити веб-програму (веб-сайт) та виконати необхідну автентифікацію.
  3. Відкрийте Fiddler і натисніть на запит сторінки HTTP 200 HTML. Визначення значення файлів cookie за допомогою скрипта
  4. На правій панелі із заголовків запиту скопіюйте значення параметра заголовка файлу cookie. введіть тут опис зображення
  5. Відкрийте REST Client і натисніть на вкладку "Форма заголовка" та надайте значення файлів cookie з дошки кліпів.

Натисніть кнопку НАДІСЛАТИ, щоб отримати результати.


0

З останнім запитом ARC для GET з автентифікацією потрібно додати необроблений заголовок з назвою Authorization: authtoken.

Знайдіть знімок екрана Отримати запит із параметрами автентифікації та запиту

Щоб додати параметр запиту, клацніть на стрілку спадного меню в лівій частині поля URL.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.