2013-12-15 8 views
85

Seguendo le istruzioni nel link seguente, ho creato con successo un'API REST per la mia applicazione Django: http://django-rest-framework.org/tutorial/quickstart.Come testare l'API REST utilizzando l'estensione di Chrome "Advanced Rest Client"

posso provarlo facendo quanto segue dal prompt di Unix:

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

Funziona :)

Tuttavia, vorrei utilizzare l'estensione Chrome avanzato Resto client per verificare questa stessa funzionalità . Ho installato l'estensione, ma non so dove/come inserire i campi. Quando faccio il mio istruiti indovinare (come si può vedere nello screenshot), si rifiuta dicendo "credenziali di autenticazione non sono stati forniti"

screenshot of failing request

Come/dove devo indicare i miei parametri per l'API REST?

risposta

6

Il formato di scelta rapida generalmente utilizzato per l'autenticazione di base è http://username:[email protected]/path. Dovrai anche includere l'intestazione di accettazione nella richiesta.

enter image description here

+0

Grazie. Ho ricevuto una risposta che includeva quanto segue:

Verifica CSRF non riuscita. Richiesta interrotta.

Come posso aggirare quello? –

+0

Sembra che tu non stia colpendo un endpoint dell'API ma stia invece colpendo un endpoint per JavaScript da colpire. – abraham

+0

Si tratta in genere di una soluzione soddisfacente, a meno che il tuo UID o PWD includa i simboli ":" o "@". – Blamkin86

10

dallo screenshot Vedo che si desidera passare "user" e valori "password" per il servizio. Hai inviato i valori dei parametri nella parte dell'intestazione della richiesta che è errata. I valori sono inviati nel corpo della richiesta e non nell'intestazione della richiesta. Anche la tua sintassi è sbagliata. La sintassi corretta è: {"user":"user_val","password":"password_val"}. Controllare anche qual è il tipo di contenuto. Dovrebbe corrispondere al tipo di contenuto che hai impostato per il tuo servizio.

7

Questa sembra una domanda molto vecchia, ma sto fornendo una risposta, in modo che possa aiutare gli altri. È possibile specificare le variabili nella seconda schermata nella sezione modulo, come mostrato di seguito o nel formato RAW aggiungendo le variabili come mostrato nella seconda immagine.

Specify Form Variables

Specify in RAW format

Se la variabile e valori delle variabili sono validi, si dovrebbe vedere una risposta positiva nella sezione di risposta.

+0

e se si tratta di una richiesta GET? – Dejell

+0

Ho dovuto impostare l'intestazione Content-Type in modo esplicito, con il valore: application/x-www-form-urlencoded –

3

nella sezione di intestazione si deve scrivere

Autorizzazione: aG9sY67890vbGNpbQ == base

dove stringa dopo di base è il valore di codifica a 64 bit di username: password. esempio php di ottenere i valori dell'intestazione è: echo "Autorizzazione: base". base64_encode ("myUser: miaPassword");

n.b: ho assunto il metodo di autenticazione come base. che può essere diverso.

+0

La domanda chiede in particolare come eseguirla nell'estensione avanzata di Chrome. – Shauna

+0

La risposta di Shauna era corretta e dovrebbe essere la risposta accettata, ma questo commento di sharif è utile anche per coloro che sono curiosi di sapere cosa ha fatto il client Chrome Advanced Rest per codificare l'utente e la password. Grazie. – Deemoe

98

La rilevabilità è scarsa, ma è abbastanza intelligente come Advanced Rest Client gestisce l'autenticazione di base. La scorciatoia di Abraham menzionata non ha funzionato per me, ma un pochino in giro ha rivelato come funziona.

La prima cosa che dovete fare è aggiungere il Authorization intestazione: menus

Poi, un po 'cosa elegante si apre quando ci si concentra il value ingresso (si noti il ​​"costruire" scatola in basso a destra): construct the auth value

Fare clic su di esso farà apparire una finestra. Lo fa anche OAuth, se vuoi! convenient inputs

Tada! Se si lascia vuoto il campo del valore quando si fa clic su "costrutto", si aggiungerà la parte Basic ad esso (presumo che aggiungerà anche le cose OAuth necessarie, ma non l'ho provato, poiché le mie attuali esigenze erano per autenticazione di base), quindi non devi fare nulla. fills in the field as needed

+0

Per l'autenticazione di base: https://www.youtube.com/watch?v=1SP1hgm9JqA. Nella scheda "Modulo intestazioni", aggiungi un'intestazione "Autorizzazione". Farà auto-suggerimento una volta che inizi a digitare. Nel valore, fare clic sul pulsante Modifica (matita) e digitare le credenziali di autenticazione nel pop-up. – uutsav

0

Il modo più semplice per superare questo problema di autenticazione consiste nel rubare il token di autenticazione utilizzando Fiddler.

Passi

  1. fuoco fino violinista e browser.
  2. Navigare nel browser per aprire l'applicazione Web (sito Web) ed effettuare l'autenticazione richiesta .
  3. Apri Fiddler e fai clic su HTTP 200 richiesta di pagina HTML. Capturing cookie value using Fiddler
  4. Nel riquadro di destra, dalle intestazioni delle richieste, copiare il valore del parametro dell'intestazione del cookie . enter image description here
  5. Aprire REST Client e fare clic sulla scheda "Intestazione modulo" e fornire il valore del cookie dalla scheda di clip.

Fare clic sul pulsante INVIA per recuperare i risultati.

0

Con l'ultima richiesta ARC per GET con autenticazione è necessario aggiungere un'intestazione non elaborata denominata Autorizzazione: authtoken.

Si prega di trovare il colpo di schermo Get request with authentication and query params

Per aggiungere query param clic sul menu a discesa freccia posta sul lato sinistro della casella URL.

2

intestazione autorizzazione Aggiungi e fare clic sul pulsante matita per inserire username e password

enter image description here

Problemi correlati