2014-09-02 2 views
2

필자의 무선 클라이언트 카드를 통해 원시 http 요청을 내 플라스크 웹 서버로 보내는 내 자신의 사용자 지정 클라이언트를 작성했습니다.플라스크 Json 요청 400 로깅?

이 전형적인 요청이 모습입니다 :

Content-Length: 214 
User-Agent: blah 
Connection: close 
Host: 1.2.3.4:5000 
Content-Type: application/json 

{"data":[{"scoutId":2,"message":"ph=5.65"},{"scoutId":4,"message":"ph=4.28"},{"scoutId":3,"message":"ph=4.28"},{"scoutId":2,"message":"ph=5.65"},{"scoutId":4,"message":"ph=4.28"},{"scoutId":3,"message":"ph=4.30"}]} 

때때로, 내 고객이 망치와 내 플라스크 서버에 잘못된 JSON 요청을 보냅니다. 일반적으로 플라스크는 다음을 표시합니다.

1.2.3.5 - - [01/Sep/2014 22:13:03] "POST/HTTP/1.1" 400 - 

및 요청에 대한 정보가 없습니다.

내 환경에서 400을 초래 한 모든 요청을 추적하고 이러한 오류의 원인을 분석하고 싶습니다.

어디에서 플라스크 서버에 사용자 정의 오류 기능을 넣을 수 있습니까? 에 선회

답변

4

시도는 :

app.config['TRAP_BAD_REQUEST_ERRORS'] = True 

이것은 단지 (documentation here 참조) (400)를 기록하는 대신 플라스크 예외를 발생해야한다.

http://flask.pocoo.org/docs/0.10/patterns/errorpages/

@app.errorhandler(400) 
def page_not_found(exc): 
    #do something with the exception object `exc` here 
    .... 

또는 제외/시도에서보기 기능의 몸을 감싸는 시도 : 그보다 더 많은 일을해야하는 경우

, 이벤트 핸들러를합니다.