2015-10-13 2 views
0

У меня есть приложение Django, в котором я хочу получить страницу с моего собственного сайта и имитировать запрос на стороне клиента, передав заголовки и куки запроса.Django input request.META в заголовки запросов?

middleware.py

r = requests.get('https://google.com', None, headers=request.META, cookies=request.COOKIES) 

Однако я заметил, что в Django request.META капитализируются и использует подчеркивания вместо дефиса. Пока request.COOKIES возвращает пустое, что заставляет меня думать, что они не появляются в промежуточном программном обеспечении?

Я что-то пропустил, кажется, что это довольно неудачный, так как запросы - такая популярная библиотека, и Django - такая популярная структура.

ответ

0

Вы уверены, что правильно настроили cookie? Я протестировал это с помощью небольшого кусочка пользовательского промежуточного программного обеспечения, и request.COOKIES имел настоящий файл cookie. Вот мой взгляд:

def test(request): 
    response = HttpResponse('test') 
    response.set_cookie('foo', 'bar') 
    return response 

Затем, после установки точки останова с ipdb в моем пользовательском промежуточном слое:

class MyMiddleware(object): 

    def process_request(self, request): 
     import ipdb; ipdb.set_trace() 

я мог видеть множество печенья просто отлично:

ipdb> request.COOKIES 
{'foo': 'bar'} 
+0

Hm Я буду снова проверьте. Однако основной вопрос заключался в передаче запроса. META в заголовок param: P – John

+0

В этом случае я не уверен, в чем ваш вопрос. Вы просто ищете подтверждение того, что Django изменяет заголовочные ключи в request.META? Согласно документам, вы правы: https://docs.djangoproject.com/en/1.8/ref/request-response/#django.http.HttpRequest.META – Dan

+0

Я думаю, мой вопрос: есть ли способ, которым я могу введите словарь META в params запроса? – John

Смежные вопросы