ファイルのアップロードをデバッグする方法は?
質問
Pythonスクリプトを使用するHot Bananaのコンテンツ管理システムを使用して、PDFファイルをWebサイトにアップロードしようとしています。サイトに正常にログインし、ログアウトできましたが、ファイルのアップロードを機能させることができません。
ファイルのアップロードは、POSTを介してフォームデータとPDFファイルを送信する大規模で複雑なWebフォームの一部です。 FirefoxとFirebugおよびTamper Data拡張機能を使用して、ブラウザーがPOSTで送信しているものとその送信先を確認しました。ブラウザがコードで送信していたデータを模倣したと思いますが、まだ問題があります。
Cookieを処理するcookielib、PDFをエンコードするポスター、リクエストを作成してURLに送信するurllibとurllib2をインポートしています。
ポスターオープナーを登録すると、Cookieプロセッサオープナーが破壊される可能性はありますか?私はこれを完全に間違っていますか?
編集:プロセスをデバッグする良い方法は何ですか?現時点では、テキストファイルへのurllib2応答をダンプし、出力を調べて、ファイルを手動でアップロードしたときに得られるものと一致するかどうかを確認しています。
編集2:クリス・ライブリーは、私が得たエラーを投稿することを提案しました。 urllib2からの応答は例外を生成せず、単に次を返します。
<script>
if (parent != window) {
parent.document.location.reload();
} else {
parent.document.location = 'login.cfm';
}
</script>
私はそれを続けます。
解決
&quot; [Webサービス]プロセスをデバッグするための良い方法は何ですか?&quot;
現時点では、テキストファイルへのurllib2応答をダンプし、出力を調べて、ファイルを手動でアップロードしたときに得られるものと一致するかどうかを確認しています。
正しい。これですべてです。
HTTPは非常に単純なプロトコルです。要求(この場合はPOST)を行うと、サーバーが応答します。他に多くのことは関係なく、デバッグ中にできることはあまりありません。
他に何が必要ですか?真剣に。この種のステートレスプロトコルには、どのような種類のデバッガーが存在すると思いますか?
他のヒント
WireShark のようなツールは、firefoxよりもはるかに低いレベルでより完全なトレースを提供します。プラグイン。
多くの場合、これはcontent-typeを正しく設定しない、またはcontent-lengthを含めないなどの単純なものです。
クライアント側でこれをデバッグしようとするよりも、サーバーをインストルメントしてこれが失敗する理由を確認した方がよい場合があります。