Читання сирого HTTP-запиту в Django 1.3

Я хочу прочитати сирий HTTP-запит у Django 1.3.

Чи є простий спосіб зробити це?

Я спробував наступне без успіху:

clength = int(request.META.get("CONTENT_LENGTH"))
data = request.read(1000)
# data comes out empty

Також спробували:

for part in request:
    pass
    # never enters the loop

Причиною цього є те, що якось атрибут мого raw_post_data порожній, коли використовується команда multipart/related MIME у коді POST . Мабуть, це помилка, яка тривалий час була там .

5
request не містить жодного вмісту. Вона просто має деталі щодо запиту, що робиться - отже, ім'я. Вміст містить відповідь .
додано Автор Chris Pratt, джерело
@Ятанізм: немає Я отримую повідомлення multipart/related POST в Центрі повідомлень MMS, і, навіть якщо ці дані є, DJANGO не виставляє його через об'єкт request . Я переконався, що ці дані є нюхаючи пакети.
додано Автор Pablo Santa Cruz, джерело
@ ChrisPratt: опубліковані дані мають бути в об'єкті response ?
додано Автор Pablo Santa Cruz, джерело
@Jathanism: спробуйте щось подібне. патч занадто старий. не буде патч прямо проти 1.3 або 1.3.1. Якщо я створив новий патч, спробую його відправити. Дякую!
додано Автор Pablo Santa Cruz, джерело
Що саме ти робиш? Це спроба розібрати завантажений вміст файлу?
додано Автор jathanism, джерело
Так, схоже, що це помилка. Я думаю, ви повинні спробувати патч у звіті про помилку і подивитися, чи це працює для вас.
додано Автор jathanism, джерело

2 Відповіді

Have you tried HttpRequest.raw_post_data? Looks like something you should take a look at until the bug is fixed. https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpRequest.raw_post_data

2
додано
Не зрозумів, що що старий ... Але це може бути хороша інформація для деяких людей, тому я просто залишу відповідь.
додано Автор xeor, джерело
Дякую! Я подивився на HttpRequest.raw_post_data. Він налаштований на nil на деякій частині рамки через те, що його заголовок - це повідомлення multipart/related ...
додано Автор Pablo Santa Cruz, джерело

For django version < 1.4, you can use HttpRequest.raw_post_data, and for version >= 1.4, using HttpRequest.body instead.

2
додано
ІТ КПІ - Python
ІТ КПІ - Python
625 учасників

Канал обговорень про всякі штуки зі світу пайтону. Прохання: 0. мати повагу одне до одного; 1. не матюкатися в сторону людей; 2. не захламляти тред повідомленнями по одному слову;