Fare richieste HTTP usando gli strumenti di sviluppo di Chrome


206

Esiste un modo per effettuare una richiesta HTTP utilizzando gli strumenti di sviluppo di Chrome senza utilizzare un plug-in come POSTER?


1
Stai sperando di effettuare richieste tra domini o sullo stesso dominio in cui hai aperto gli strumenti per sviluppatori?
Lukas,

6
Per tutte le persone che desiderano questa funzione -
inizia

1
Tutte erano risposte utili, volevo solo aggiungere uno strumento che trovo abbastanza utile Advanced Rest Client . L'uso di questo può aiutare a risparmiare molto tempo nel lungo termine se si effettuano più richieste API.
Sagar Ranglani,

6
Firefox è un'opzione migliore per questo. basta fare clic con il tasto destro del mouse sulla richiesta e inviare nuovamente o modificare e inviare nuovamente.
eusoubrasileiro,

@eusoubrasileiro: grazie. Il pulsante Modifica e invia nuovamente nella scheda di rete di Firefox per inviare nuovamente una richiesta è una funzione davvero interessante. Spero che qualcuno sollevi una richiesta per aggiungerla anche in Chrome
firstpostcommenter il

Risposte:


187

Poiché l' API Fetch è supportata da Chrome (e dalla maggior parte degli altri browser), ora è abbastanza semplice fare richieste HTTP dalla console devtools.

Per GET un file JSON, per esempio:

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

O POST una nuova risorsa:

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 attualmente supporta anche la nuova sintassi asincrona / waitit (anche se waitit normalmente può essere utilizzato solo all'interno di una funzione asincrona):

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

Nota che le tue richieste saranno soggette alla stessa politica di origine , proprio come qualsiasi altra richiesta HTTP nel browser, quindi evita le richieste di origine incrociata o assicurati che il server imposti le intestazioni CORS che consentono la tua richiesta.

Usare un plugin (vecchia risposta)

In aggiunta ai suggerimenti precedentemente pubblicati, ho trovato che il plug-in Postman per Chrome funzionava molto bene. Ti consente di impostare intestazioni e parametri URL, utilizzare l'autenticazione HTTP, salvare le richieste che esegui frequentemente e così via.


3
Poiché l'operazione ha accettato una risposta usando Postman: Se si fa clic con il tasto destro del mouse sulla richiesta in dev-tools e "Copia come cURL", è possibile importare il comando cURL in Postman per inviare nuovamente / modificare la richiesta. Vedi: getpostman.com/docs/postman/collections/data_formats -> " Importing as cURL"
dhfsk

1
Come effettuare una richiesta di post?
Nuhman,

7
@Nuhman Fetch accetta un secondo argomento in cui è possibile configurare la richiestafetch("/echo/json/", { method: "POST", body: data })
Christofer Eliasson,

1
Tieni presente che è anche possibile Copiare come recuperare qualsiasi richiesta dalla cronologia di rete di Chrome Dev Tools.
Vadzim,

1
@mathtick C'è un modeopzione richiesta è possibile utilizzare: fetch("/echo/json/", { method: 'POST', mode: 'no-cors' }. Nota che la modalità: "no-cors" consente solo un numero limitato di intestazioni nella richiesta. Maggiori informazioni sull'uso di fetch e no-cors
Christofer Eliasson

154

Se desideri modificare e riemettere una richiesta che hai acquisito nella scheda Rete degli Strumenti di sviluppo di Chrome:

  • Fare clic con il tasto destro del mouse Namesulla richiesta
  • Selezionare Copy > Copy as cURL
  • Incolla sulla riga di comando (il comando include cookie e intestazioni)
  • Modifica la richiesta secondo necessità ed esegui

inserisci qui la descrizione dell'immagine


11
Firefox ti consente di modificare la chiamata prima della ripetizione, ma in Chrome non esiste tale opzione, quindi sopra la risposta è la strada da percorrere
Tofeeq

3
Con Chrome 63+, incollare CURL nella console non funziona.
Ravi Parekh,

2
@RaviParekh Non penso che intendesse la console Chrome, intendeva la riga di comando del sistema operativo
Korayem,

4
Copia come recupero consente di riemettere le richieste modificate direttamente dalla console di Chrome Dev Tools ed è un'alternativa praticabile per coloro che non hanno cURL o desiderano disturbarlo.
Vadzim,

1
Ma usando l'arricciatura, a volte il risultato non è lo stesso. Sono venuto qui per sapere se potevo richiedere dal browser. Utilizzando javascript del browser. Mi permette di riprodurre problemi CORS, che un ricciolo dal mio terminale non dovrebbe illuminarmi.
Garry Dias,

32

Lo so, vecchio post ... ma potrebbe essere utile lasciarlo qui.

I browser moderni ora supportano l' API Fetch .

Puoi usarlo in questo modo:

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: effettuerà tutti i controlli CORS, poiché è migliorato XmlHttpRequest.


13

Se la tua pagina web ha jquery nella tua pagina, puoi farlo scrivendo sulla console degli sviluppatori di Chrome:

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

Il suo modo jquery di farlo!


14
Ciò presuppone che la pagina Web utilizzerà jQuery
mikemaccana

2
Ricorda che questo è solo per le GETrichieste, se vuoi fare altri tipi di richieste, potresti usare$.ajax
aksu

@mikemaccana È possibile caricare jQuery in qualsiasi pagina tramite console.
Nehem,

1
In questo modovar script = document.createElement("script"); script.src = "http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"; document.body.appendChild(script);
nehem

1
La risposta di @itsneo era proprio sul posto! Modo per caricare jquery se la pagina a cui si accede non ce l'ha già. Quindi puoi usare $ .ajax o equivalente, senza bisogno di un plugin
Renato Chencinski

12

Espandendo sulla risposta @dhfsk

Ecco il mio flusso di lavoro

  1. Da Chrome DevTools, fare clic con il tasto destro del mouse sulla richiesta che si desidera manipolare> Copy as cURL Chrome DevTools Copia come cURL

  2. Apri postino

  3. ImportQuindi fare clic nell'angolo in alto a sinistraPaste Raw Text Postman Paste Raw Text cURL da Chrome

7

Se vuoi fare un POST dallo stesso dominio, puoi sempre inserire un modulo nel DOM usando gli strumenti per sviluppatori e inviare che:

Modulo inserito nel documento


4

Ho avuto la migliore fortuna combinando due delle risposte sopra. Passare al sito in Chrome, quindi trovare la richiesta nella scheda Rete di DevTools. Fare clic con il tasto destro del mouse sulla richiesta e Copia, ma Copia come recupero anziché cURL. È possibile incollare il codice di recupero direttamente nella console DevTools e modificarlo, anziché utilizzare la riga di comando.


3
Non indicarle come "due risposte sopra" perché ciò potrebbe cambiare in caso di votazione / votazione negativa
Urosh T.

4

Per ottenere richieste con le intestazioni, utilizzare questo formato.

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

2

se usi jquery sul tuo sito web, puoi usare qualcosa di simile alla tua console

$.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

Semplificando, se desideri che la richiesta utilizzi lo stesso contesto di navigazione della pagina che stai già visualizzando, nella console di Chrome fai semplicemente:

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
Dovresti spiegare la tua risposta, non solo pubblicare un codice casuale.
Jakub Muda,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.