2015-07-15 7 views
0

Я пишу веб-сервис с использованием Django, который будет использоваться из рабочего процесса MS SharePoint. В рабочем процессе SP я создал словарь с двумя элементами (id: 1, text: 'foo) и использовал этот словарь в качестве содержимого запроса. Однако, вместо того, чтобы использовать словарь для форматирования традиционного списка параметров POST, он отправляет его в качестве объекта JSON в теле запроса POST, поэтому вместо ожидаемого:Параметры POST, отформатированные как JSON

id=1&text=foo 

в теле запроса, есть это:

{"id":1,"text":"foo"} 

котором конечно, в свою очередь, не получает корректно распознаны по Python/Django (я не знаю, кто именно делает синтаксический). Как я могу заставить его разобрать JSON или заставить SharePoint отправлять традиционно кодированные параметры POST?

EDIT
Я видел другие сообщения, которые объясняют, как получить сырье тела и разобрать JSON. Я искал решение, которое будет либо:

  1. Сделать SharePoint отправить нормальные данные, или
  2. Получить Джанго уважать Content-type заголовок, который гласит, что данные JSON
+0

возможно дубликат [Джанго запрос сообщение JSON] (http://stackoverflow.com/questions/24958705/django-request -post-json) –

+1

, пожалуйста, сделайте поиск, прежде чем спрашивать - это уже было задано несколько раз здесь (последний раз было этим утром FWIW), и он принимает = ~ 1,27 секунды, чтобы получить ответ с помощью google. –

ответ

0

Может быть, это поможет вы больше разбираетесь.

import json 
import urlparse 

json.dumps(urlparse.parse_qs("id=1&text=foo")) 
1

Нет необходимости в анализе на уровне каркаса. Тело запроса пост всегда доступен в request.body, так что вы можете получить доступ к нему напрямую:

result = json.loads(request.body) 
Смежные вопросы