2013-07-01 2 views
19

동일한 POST에서 보낼 파일과 양식 데이터가 있습니다. 예를 들어 {duration : 2000, file : test.wav}. 파이썬 요청을 사용하여 multipart/form-data 게시에 많은 스레드를 보았습니다. 유용했는데, 특히 this one.파이썬 요청을 사용하는 멀티 파트 데이터 POST : 멀티 파트 경계가 발견되지 않았습니다.

files = {'file': ('wavfile', open(filename, 'rb'))} 
    data = {'duration': duration} 
    headers = {'content-type': 'multipart/form-data'} 
    r = self.session.post(url, files=files, data=data, headers=headers) 

하지만 위의 코드를 실행하는 경우,이 에러 얻을 :

내 샘플 요청은 아래와 같다

5 : 59 : 55.338 DBG을 09,900 [DEBUG] 핸들러에서 예외를 해결 [ null] : org.springframework.web.multipart.MultipartException : multipart 서블릿 요청을 구문 분석 할 수 없습니다. 중첩 예외는 org.apache.commons.fileupload.FileUploadException입니다 : 다중 부분 경계가 발견되지 않아 요청이 거부되었습니다.

제 질문은 다음과 같습니다. 1) 전송 된 요청의 내용을 어떻게 볼 수 있습니까? wireshark를 사용할 수 없으며, 네트워크를 통해 wireshark를 사용할 수 없습니다. 2) 인코딩 된 데이터에 경계가없는 이유는 무엇입니까? 나는 무엇이든을 놓쳤는가, 지적하십시오.

답변

35

사용자가 직접 헤더를 설정해서는 안됩니다. 경계로 헤더를 올바르게 설정합니다. 해당 헤더를 설정하면 서버가 예상 할 경계를 알지 못합니다 (헤더에 추가되기 때문에). 사용자 정의 Content-Type 헤더를 제거하면 문제가 없습니다.

6

명백한 "multipart/form-data"로 Content-Type 헤더를 가져옴!

관련 문제