0

AppEngineの2つのページ間で単純なhttpリクエスト/レスポンス通信を行おうとしています。コードは次のとおりです。

class MainHandler(webapp.RequestHandler):
    def get(self):
       values = {'id' : '9',
           'number' : '10001',
           'age' : '15828',
           'name' : 'Squeak' }
       data = urllib.urlencode(values)
       request = urllib2.Request("http://localhost:8082/post", data)
       response = urllib2.urlopen(request)
       content = response.read()
       self.response.out.write(content)

class PostHandler(webapp.RequestHandler):
    def post(self):
       self.response.out.write(str(self.request.get('id')) + '<br>'  + str(self.request.get('number')) + '<br>' + str(self.request.get('age')) + '<br>' + self.request.get('name'))

これらのハンドラーを「/」と「/post」に割り当てました。HTTP応答を待機しているDeadLineExceedErrorが発生します。これは、「安定化された接続がホストマシンのソフトウェアによって中止された」ためにブロックされたと思われます。 Errno10053]。ファイアウォール/アンチウイルスを無効にしてみましたが、それでも機能しませんでした。明らかに私はAppEngineを初めて使用しますが、これは簡単なことです。なぜそれが起こっているのですか?私はすでにこれにしばらく苦労しています。

4

1 に答える 1

1

最初にAppEngineに使用する(データを提供する)ポートを選択することはできないので、それを試すことを忘れてください。

デプロイされたサーバーでこれを試しましたか?コメントにあるように、特に複数のリクエストがある場合、ローカルとデプロイでの動作は大きく異なる可能性があります。

App Engineのページは相互に通信できず、リクエストが完了するたびにすべてが忘れられます。

したがって、コードでおそらく起こっていることは次のとおりです。

投稿リクエストを行います。元のgetをまだ処理しているため、そのPOSTリクエストは処理できません。したがって、取得が完了するまで投稿はキューに入れられます。投稿が完了するのを待っているため、getは完了しません。

またはとにかくそのようなもの。

このコードで何を達成しようとしているのかを説明し、それを別の質問として再質問すると、おそらくより良いでしょう。これをそのまま「修正」する実際の方法はないので。

于 2012-12-04T09:43:30.907 に答える