2009-03-10 5 views
1

Python 스크립트를 사용하는 Hot Banana의 콘텐츠 관리 시스템을 사용하여 웹 사이트에 PDF 파일을 업로드하려고합니다. 성공적으로 사이트에 로그인했는데 로그 아웃 할 수는 있지만 파일 업로드가 작동하지 않는 것 같습니다.파일 업로드를 디버깅하는 방법은 무엇입니까?

파일 업로드는 POST를 통해 양식 데이터와 PDF 파일을 제출하는 복잡한 복잡한 웹 양식의 일부입니다. Firebug 및 Tamper Data 확장 기능과 함께 Firefox를 사용하여 브라우저에서 POST에서 보낸 내용과 진행 상황을 살펴 보았습니다. 브라우저에서 코드를 전송하는 데이터를 모방 한 것으로 보지만 여전히 문제가 있습니다.

쿠키를 처리하기 위해 cookielib를 가져오고, PDF를 인코딩하려면 포스터를, urllib 및 urllib2를 요청을 작성하여 URL로 보내십시오.

포스터 오프너를 등록하는 것이 쿠키 프로세서 오프너를 방해 할 수 있습니까? 이 일을 완전히 잘못하고 있습니까?


편집 : 프로세스를 디버깅하는 좋은 방법은 무엇입니까? 지금은 텍스트 파일에 대한 urllib2 응답을 덤프하고 출력을 검사하여 파일 업로드를 수동으로 수행 할 때 얻은 결과와 일치하는지 확인합니다.

편집 2 : Chris Lively는 내가 받고있는 오류를 게시 할 것을 제안했습니다. urllib2의 응답은 예외를 생성하지 않지만 다음을 반환합니다.

<script> 
    if (parent != window) { 
     parent.document.location.reload(); 
    } else { 
     parent.document.location = 'login.cfm'; 
    } 
</script> 

내가 계속 사용하겠습니다.

+0

수신하는 오류를 게시 한 경우 도움이 될 수 있습니다. – NotMe

+0

나는 사무실로 돌아올 때 실수로 내 게시물을 편집 할 것입니다. – afrosteve

+0

그건 허가 문제입니다. 자바 스크립트를 통해 로그인으로 리디렉션됩니다. –

답변

0

"[웹 서비스] 프로세스를 디버깅하는 좋은 방법은 무엇입니까?"

지금은 텍스트 파일에 urllib2 응답을 덤프하고 파일 업로드를 수동으로 업로드 할 때 결과가 일치하는지 확인하려고합니다.

수정. 그게 전부입니다.

HTTP는 매우 간단한 프로토콜입니다. 요청하면 (이 경우 POST) 서버가 응답합니다. 디버깅하는 동안 많이 신경 쓰지 않고 할 수 있습니다.

그 밖의 무엇을 원하십니까? 진지하게. 이러한 종류의 상태 비 저장 프로토콜에 대해 상상할 수있는 디버거 유형은 무엇입니까?

+0

Bentley Continental 내부에서만 작동하는 디버거를 상상해보십시오. 그런 다음 클라이언트가 Bentley 대신 지불하는 것을 상상해보십시오. 그 모든 서버.

+0

뭔가 놀라운 일 이니? 나는 멋진 웹 애들을 많이 그리지 않아 멋진 애들이 사용하는 도구가있을 거라고 생각 했어. rance. – afrosteve

+0

Bentley 디버거도 사용하고 싶습니다. – afrosteve

0

클라이언트 측에서 디버깅을 시도하는 대신 서버 장애 조치가 실패한 이유를 확인하는 것이 좋습니다.

+0

나는 이런 종류의 물건을 가진 초보자입니다. – afrosteve

+0

@afrosteve : 서버에 액세스 할 수 있습니까? 그렇다면 서버의 관점에서 로그를 살펴보고 서버의 관점에서 무엇이 발생하는지 확인해야합니다. –

+0

@ S.Lott : 이 시점에서 블랙 박스를 뿌리 뽑고 있습니다. – afrosteve

1

WireShark과 같은 도구는 firefox 플러그인보다 훨씬 낮은 레벨에서 더 완벽한 추적을 제공합니다.

종종 이것은 콘텐츠 형식을 올바르게 설정하지 않았거나 콘텐츠 길이를 포함하지 않는 것처럼 간단 할 수 있습니다.

+0

WireShark를 사용해 보겠습니다. 감사합니다. – afrosteve

관련 문제