0
 Here is my code:

    class MainHandler(tornado.web.RequestHandler):         
        def get(self):
            self.write(self.response.arguments)
    def main():
        settings = {"template_path": "html","static_path": "static","debug":True}
        tornado.options.parse_command_line()
        application = tornado.web.Application([ (r"/", MainHandler)],**settings)
        http_server = tornado.httpserver.HTTPServer(application)
        http_server.listen(options.port)
        tornado.ioloop.IOLoop.instance().start()
    if __name__ == "__main__":
        main()
だから wget http://localhost/?#access_token=DWE232
私は何も得ませんでした。
wget http://localhost/?access_tokent=DWE232 の場合、値を取得できます
問題を解決するには?
4

2 に答える 2

1

urllib を使用して、クエリ パラメーターをエンコードできます。

>>> import urllib
>>> urllib.urlencode({'#access_token': 'DWE232'})
'%23access_token=DWE232'

   So instead of 

   wget http://localhost/?#access_token=DWE232 

   use

   wget http://localhost:12123/?%23access_token=DWE232
于 2013-07-01T15:24:40.573 に答える
0

「#」はフラグメント識別子であり、URL には渡されません。

から - http://en.wikipedia.org/wiki/Fragment_identifier

フラグメント識別子の機能は、URI の残りの部分とは異なります。つまり、その処理は、Web サーバーからの参加なしに、クライアント側のみで行われます。エージェント (Web ブラウザーなど) が Web サーバーから Web リソースを要求すると、エージェントはサーバーに URI を送信しますが、フラグメントは送信しません。代わりに、エージェントはサーバーがリソースを送信するのを待ってから、ドキュメント タイプとフラグメント値に従ってリソースを処理します。

したがって、「#」をサーバーに渡す必要があるコードがある場合は、それが安全に渡されることを保証する urlencode() 関数 (python、JavaScript など) でコード化する必要があります。

于 2013-07-02T13:19:28.493 に答える