2011-11-22 11 views
7

私はSymfonyフレームワークで設計されたローカルWebサイトにアクセスしようとしています。 これはWebブラウザとCURLで完全に動作しますが、私がMechanizeを使用すると、私はいつもサーバに対して401の権限のない回答を得ています。Symfonyと機械化

import mechanize 


# Browser 
br = mechanize.Browser() 
br.set_debug_http(True) 
br.set_debug_redirects(True) 
br.set_debug_responses(True) 

# Does not change anything even if we change thos 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

# Here is my website 
r = br.open('http://localhost:8080/frontend_dev.php/home') 
html = r.read() 

# Show the html source 
print html 

これがこのように動作する理由はありますか?

おかげ

+0

Symfonyはヒットしているかどうかを確認します。それはあなたが死ぬ( "ヒット")と書いたことが起こる。 frontend_dev.phpファイルの上に? – greg0ire

+0

私が死ぬと(「ヒット」);ヒットし、401エラーは表示されません。 – lc2817

答えて

6

最終的に私は自分で答えを見つけました。 sfDoctrineGuardPlugin(およびsfGuardPlugin)には、hereのようにこの現象が発生するバグがあります。 私はパッチを適用し、問題は解決されました。

+0

を取得し、私はあなたがプラグインの古いバージョンを持っていなければならないと思います。更新を検討してください。 – greg0ire

+0

今年は8月にバグが修正されました。 sfDoctrineGuardの最後のリリースは2010年です。私はあなたが正しいとは思わない。あなたは何をお勧めします:http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin – lc2817

+0

私は真剣にSymfony2のを使用することをお勧めが、私は最後のリリースはとても古いです理由がわからない...おそらく、あまりにも忙しいjwageですdoctrine2/sf2で... – greg0ire

1

はsymfonyで開発環境にアクセスできるユーザーのタイトなコントロールがあります。メインURL(おそらくhttp://localhost:8080/index.php/home)を使用してみてください

+0

問題を解決しませんでした。私はちょうどそれを試して、同じエラーを受けた – lc2817

+0

申し訳ありません。私はあなたのキャッシュをクリアしたと思いますか?資格や必要なものはありますか? – MrGlass

+0

キャッシュの場合:はい。私はホームページに必要な資格を持っていません。そしてそれはカールで完全に動作します、私は理由を知らない... – lc2817

1

あなたのコードを試してみるために有効なアドレスを参照できますか? I guessいくつかの設定が不足していると思われる場合は、ロボットを無効にしてみてください。

br.set_handle_robots(False) 
+0

私はこれを試したが、何も変わらなかった。 いいえ私のコードを正しく実行するための有効なアドレスを提供することはできません(ご了承ください)。 – lc2817

1

私はsymfonyフレームワークについて何も知りませんが、あなたは'Error : 401 'を得ているよう。これらの行を追加すると機能するかもしれません。

br.add_password('http://localhost:8080/frontend_dev.php/home', 'username', 'password') 
br.open('http://localhost:8080/frontend_dev.php/home') 
+0

私はこれを試してみましたが、まだそれは古いバグだ同じエラー – lc2817

関連する問題