Tôi đang gửi yêu cầu POST có phần thân JSON đến máy chủ Django (khá chuẩn). Trên máy chủ, tôi cần giải mã bằng cách sử dụng json.loads()
.Nhận yêu cầu nội dung dưới dạng chuỗi ở Django
Vấn đề là làm thế nào để tôi lấy nội dung yêu cầu theo định dạng chuỗi?
tôi có hiện đoạn mã sau:
body_data = {}
if request.META.get('CONTENT_TYPE', '').lower() == 'application/json' and len(request.body) > 0:
try:
body_data = json.loads(request.body)
except Exception as e:
return HttpResponseBadRequest(json.dumps({'error': 'Invalid request: {0}'.format(str(e))}), content_type="application/json")
Tuy nhiên, điều này mang lại một lỗi the JSON object must be str, not 'bytes'
.
Làm cách nào để truy lục nội dung của yêu cầu dưới dạng chuỗi, với mã hóa chính xác được áp dụng?
Có phải 'request.read()' thực hiện công việc không? – dhke
@dhke, không, nó cũng giống như vậy, điều này khiến tôi ngạc nhiên. 'request.body.decode ('utf-8')' có vẻ hoạt động, nhưng tôi không chắc đây có phải là cách tốt nhất để làm điều này không? – zelanix