convert requests.models.Response to Django HttpResponse convert requests.models.Response to Django HttpResponse django django

convert requests.models.Response to Django HttpResponse


This should works:

from django.http import HttpResponseimport requestsrequests_response = requests.get('/some-url/')django_response = HttpResponse(    content=requests_response.content,    status=requests_response.status_code,    content_type=requests_response.headers['Content-Type'])return django_response


To add to Brian Loughnane's answer: when I tried the solution:

for k, v in requests_response.headers.items():    django_response[k] = v

I got an error from django: AssertionError: Hop-by-hop headers not allowed

I don't know if it's the best solution but I "fixed" it by removing the offending headers.

from wsgiref.util import is_hop_by_hopfor k, v in requests_response.headers.items():    if not is_hop_by_hop(k):        django_response[k] = v


This may help you :

requests.models.Response class which,has json() method (according to the documentation) that deserializes the JSON response into a Python object using json.loads(). Try to print following and you can access whatever you are looking for.

print yourResponse.json()