2011-10-25 15 views
5

Tiêu đề khá nhiều nói lên tất cả: Tôi sử dụng raw_post_data trong một vài lượt xem và do đó tôi cần ứng dụng khách thử nghiệm cấp quyền truy cập phù hợp cho nó.Truy cập raw_post_data trong ứng dụng khách thử django

Tôi đã sao chép chuỗi raw_post_data, từ một yêu cầu giả, chuyển nó tới json.loads(), và sau đó sử dụng dict kết quả làm dữ liệu POST cho máy khách thử nghiệm. Sau đó, tôi đặt kiểu nội dung là "application/json" - điều này làm cho raw_post_data xuất hiện, nhưng nó không phải là raw_post_data giống như yêu cầu giả lập.

+0

Bạn có thể đăng (sự khác biệt giữa dữ liệu) xuất hiện và yêu cầu bạn muốn xem không? – jro

Trả lời

4

Khi bạn thay đổi loại nội dung trong ứng dụng khách thử nghiệm, tham số dữ liệu không được phân tích cú pháp làm từ điển nữa mà được gửi trực tiếp. Hãy thử sao chép chuỗi JSON của bạn trực tiếp dưới dạng tham số dữ liệu vào yêu cầu bài đăng của bạn, bạn sẽ nhận được nó trong raw_post_data trong ứng dụng của mình.

2

Chỉ cần làm theo các bước như sau:
        1. thiết lập các thuộc tính dữ liệu để bạn chuỗi.
        2. sau đó đặt content_type thuộc tính để application/octet-stream.

payload = {'k1':'v1'} 
    data = json.dumps(payload) 
    response = self.client.post(url, data=data, content_type='application/octet-stream', **self.auth_headers) 
+0

Điều này làm việc như sự quyến rũ. Tham khảo: https://docs.djangoproject.com/en/1.9/_modules/django/test/client/ – Blas

Các vấn đề liên quan