Надсилання запитів HTTP за допомогою інструментів розробника Chrome


206

Чи є спосіб зробити запит HTTP за допомогою інструментів розробника Chrome, не використовуючи плагін типу POSTER?


1
Ви сподіваєтесь робити запити міждоменними або на тому ж домені, в якому ви відкрили інструменти для розробників?
Лукаш

6
Для всіх людей, які бажають цієї функції -
позначте

1
Всі були корисними відповідями, просто хотів додати інструмент, який я вважаю досить корисним Advanced Rest Client . Використовуючи це, можна допомогти заощадити багато часу в довгостроковій перспективі, якщо ви збираєтеся робити кілька запитів API.
Сагар Ранглані

6
Firefox - кращий варіант для цього. просто натисніть на запит правою кнопкою миші та відправте або відредагуйте та повторно надішліть.
eusoubrasileiro

@eusoubrasileiro: Спасибі Кнопка "Редагувати та повторно" на вкладці "Мережа" у Firefox для повторного запиту - це дуже приємна функція. Надія хто - то піднімає запит , щоб додати його в хромі , а також
firstpostcommenter

Відповіді:


186

Оскільки API Fetch підтримується Chrome (і більшістю інших браузерів), тепер робити запити HTTP з консолі devtools досить просто.

Для того, щоб ОТРИМАТИ файл в форматі JSON, наприклад:

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(res => res.json())
  .then(console.log)

Або POST новий ресурс:

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  body: JSON.stringify({
    title: 'foo',
    body: 'bar',
    userId: 1
  }),
  headers: {
    'Content-type': 'application/json; charset=UTF-8'
  }
})
.then(res => res.json())
.then(console.log)

Chrome Devtools фактично також підтримує новий синтаксис асинхронізації / очікування (навіть якщо очікування, як правило, може бути використане лише у функції асинхронізації):

const response = await fetch('https://jsonplaceholder.typicode.com/posts/1')
console.log(await response.json())

Зауважте, що ваші запити будуть підпадати під дію тієї самої політики походження , як і будь-який інший HTTP-запит у браузері, тому або уникайте перехресних запитів, або переконайтеся, що сервер встановлює заголовки CORS, які дозволяють ваш запит.

Використання плагіна (стара відповідь)

Як додаток до опублікованих раніше пропозицій, я встановив, що плагін Postman для Chrome працює дуже добре. Це дозволяє встановлювати заголовки та параметри URL, використовувати автентифікацію HTTP, зберігати запит, який ви часто виконуєте тощо.


3
Оскільки op прийняв відповідь за допомогою Postman: Якщо ви клацніть правою кнопкою миші запит у програмах dev-tools та "Copy as cURL", ви можете імпортувати команду cURL в Postman, щоб повторно / змінити запит. Дивіться: getpostman.com/docs/postman/collections/data_formats -> "Імпорт як CURL"
dhfsk

1
Як зробити запит на повідомлення?
Нуман

7
@Nuhman Fetch бере другий аргумент, за яким можна налаштувати запитfetch("/echo/json/", { method: "POST", body: data })
Крістофер Еліассон

1
Зауважте, що також можна скопіювати будь-який запит із історії мережних інструментів Chrome Dev.
Вадим

1
@mathtick Існує modeваріант запиту ви можете використовувати: fetch("/echo/json/", { method: 'POST', mode: 'no-cors' }. Зауважте, що режим: "no-cors" дозволяє лише обмежений набір заголовків у запиті. Більше інформації про використання вибору та без кору
Крістофер Еліассон

154

Якщо ви хочете відредагувати та надрукувати повторно запит, який ви зробили на вкладці Мережа інструментів розробника Chrome:

  • Клацніть правою кнопкою миші Nameзапит
  • Виберіть Copy > Copy as cURL
  • Вставити до командного рядка (команда включає файли cookie та заголовки)
  • Відредагуйте запит за потребою та запустіть

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


11
Firefox дозволяє відредагувати дзвінок перед повторним відтворенням, але такої опції в хромі немає, тому вище відповідь - це шлях
Tofeeq

3
За допомогою хромування 63+, вставлення CURL у консоль не працює.
Раві Парех

2
@RaviParekh Я не думаю, що він мав на увазі консоль Chrome, він мав на увазі командний рядок ОС
Korayem

4
Копіювати як збір дозволяє повторно випускати змінені запити безпосередньо з консолі Chrome Dev Tools і є життєздатною альтернативою для тих, у кого немає CURL або бажання не заважати.
Вадим

1
Але використовуючи завиток, іноді результат неоднаковий. Я прийшов сюди, щоб знати, чи можу я просити браузера. Використання JavaScript браузера. Це дозволяє мені відтворювати проблеми CORS, те, що завивка з мого терміналу не повинна мене радувати.
Гаррі Діас

32

Я знаю, стара посада ... але це може бути корисно залишити тут.

Сучасні браузери тепер підтримують API Fetch .

Ви можете використовувати його так:

fetch("<url>")
    .then(data => data.json()) // could be .text() or .blob() depending on the data you are expecting
    .then(console.log); // print your data

ps: Це зробить усі перевірки CORS, оскільки це покращено XmlHttpRequest.


13

Якщо на вашій сторінці є jquery на вашій сторінці, ви можете зробити це, написавши на хронічній консолі розробника:

$.get(
    "somepage.php",
    {paramOne : 1, paramX : 'abc'},
    function(data) {
       alert('page content: ' + data);
    }
);

Її спосіб запитання!


14
Це передбачає, що веб-сторінка використовуватиме jQuery
mikemaccana

2
Пам'ятайте, що це стосується лише GETзапитів, якщо ви хочете робити інші типи запитів, ви можете скористатись$.ajax
aksu

@mikemaccana Ви можете завантажити jQuery на будь-яку сторінку через консоль.
nehem

1
Як цеvar script = document.createElement("script"); script.src = "http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"; document.body.appendChild(script);
nehem

1
Відповідь @itsneo була прямо на місці! Спосіб завантаження jquery, якщо сторінка, до якої звертається, її ще не має. Тоді ви можете використовувати $ .ajax або еквівалент, не потребуючи плагіну
Ренато Ченчінський

12

Розширення на відповідь @dhfsk

Ось мій робочий процес

  1. У Chrome DevTools натисніть правою кнопкою миші запит, яким ви хочете маніпулювати> Copy as cURL Chrome DevTools Скопіюйте як CURL

  2. Відкритий листоноша

  3. Натисніть Importу верхньому лівому куті потімPaste Raw Text Поштальон Вставте сирий текст cURL від Chrome

7

Якщо ви хочете зробити POST з того самого домену, ви завжди можете вставити форму в DOM за допомогою інструментів Developer і надіслати це:

Вставлена ​​форма в документ


4

Мені пощастило поєднати дві відповіді вище. Перейдіть на сайт у Chrome, а потім знайдіть запит на вкладці «Мережа» DevTools. Клацніть правою кнопкою миші запит і скопіюйте, але скопіюйте як отримання замість CURL. Ви можете вставити код отримання безпосередньо в консоль DevTools і відредагувати його, замість того, щоб використовувати командний рядок.


3
Не посилайтеся на них як «дві відповіді вище», тому що це може змінитися при поданні заявки на поступ / подання заявок
Урош Т.

4

Для отримання запитів із заголовками використовуйте цей формат.

   fetch('http://example.com', {
      method: 'GET',
      headers: new Headers({
               'Content-Type': 'application/json',
               'someheader': 'headervalue'
               })
    })
    .then(res => res.json())
    .then(console.log)

2

якщо ви використовуєте jquery на своєму веб-сайті, ви можете використовувати щось подібне до вашої консолі

$.post(
    'dom/data-home.php',
    {
    type : "home", id : "0"
    },function(data){
        console.log(data)
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


1

Якщо ви хочете, щоб запит використовував той самий контекст перегляду, що і сторінка, яку ви вже переглядаєте, у консолі Chrome просто виконайте такі дії:

window.location="https://www.example.com";

1

$.post(
    'dom/data-home.php',
    {
    type : "home", id : "0"
    },function(data){
        console.log(data)
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


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