2011-09-13 3 views
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

이 문제를 해결하는 데 도움을주십시오. , 문제는이 버그에

답변