0
API 용 Django 1.3 + 피스톤에 관한 프로젝트가 있습니다. 이 GET 핸들러의 코드입니다 :장고 피스톤 메시지 인코딩 문제
listen_resource = Resource(ListenHandler)
urlpatterns = patterns('',
url(r'^listen/(?P<expression>.*)$', listen_resource),
)
class ListenHandler(BaseHandler):
def read(self, request, expression):
retval = {}
print expression
try:
j_data = simplejson.loads(expression)
...
GET 요청은 일반적으로이 같은 JSON 형식의 문자열 : 프로젝트를 실행하는 동안
print expression
:
/api/listen/%7B%22act%22:%221%22,%22login%22:%22Terminal_001%22,%22passw%22:%2211223344%22,%22body%22:%22%7B%5C%22date%5C%22:%5C%222011-09-14%2016:34:26%5C%22,%5C%22link%5C%22:%5C%220%5C%22%7D%22%7D
나는 그것을 인쇄 할 때 개발 서버의 Eclipse IDE에서 결과는 다음과 같습니다.
{"act":"1","login":"Terminal_001","passw":"11223344","body":"{\"date\":\"2011-09-13 16:59:31\",\"link\":\"0\"}"}
나는이 JSON 포맷 문자열에서 개체를 만들 수 있습니다 :
j_data = simplejson.loads(expression)
그러나 아파치 서버 + mod_wsgi에에서 프로젝트를 실행하는 동안, 그 결과는 다음과 같습니다
{"act":"1","login":"Terminal_001","passw":"11223344","body":"{/"date/":/"2011-09-13 17:46:42/",/"link/":/"0/"}"}
백 슬래시가 슬래시 및 운영으로 대체 simplejson.loads(expression)
는 예외를 발생한다 :
<type 'exceptions.ValueError'>
('Expecting , delimiter: line 1 column 64 (char 64)',)
아파치에서 서버의 conf 파일 내가이 줄을 추가 AllowEncodedSlashes On
이 문제를 해결하는 데 도움을주십시오. , 문제는이 버그에