[Fixed]-Token Authentication Django Rest Framework HTTPie

29👍

The solution is simple as is as follows . Use double quotes in the place of single quotes contrary to what the DRF Documentation says

For curl use the command below

curl -H "Authorization: Token b453919a139448c5891eadeb14bf1080a2624b03" http://127.0.0.1:8000/api/projects/

For HTTPie use

http GET http://127.0.0.1:8000/api/projects/ "Authorization: Token b453919a139448c5891eadeb14bf1080a2624b03"

Note that Double quotes are used contrary to single quotes in the documentation.

8👍

Contrary to Paul Nyondo’s experience, for me the issue is not single quotes / double quotes (both are fine when using bash as shell), but the space between Authorization: and Token.

This fails:

» http GET http://service:8000/api/v1/envs/ 'Authorization: Token 3ea4d8306c6702dcefabb4ea49cfb052f15af85c'

http: error: InvalidHeader: Invalid return character or leading space in header: Authorization

This works (with double quotes):

» http GET http://service:8000/api/v1/envs/ "Authorization:Token 3ea4d8306c6702dcefabb4ea49cfb052f15af85c"
HTTP/1.1 200 OK
Allow: GET, HEAD, OPTIONS
Content-Length: 90
Content-Type: application/json

And this also works (with single quotes):

» http GET http://svc.userv.dgvmetro:8000/api/v1/envs/ 'Authorization:Token 3ea4d8306c6702dcefabb4ea49cfb052f15af85c'
HTTP/1.1 200 OK
Allow: GET, HEAD, OPTIONS
Content-Length: 90
Content-Type: application/json

Leave a comment