0

これが私の問題です。腐ったトマト API から URL をリクエストしようとしています。問題は、映画のタイトルにスペースがあるべき場所に + 記号を含めることを要求することです。ただし、アプリ エンジン側でこれを実装する方法がわかりません。アプリ エンジンで同じことをしようとすると、同じエラーが発生するためです。

トレースバック (最新の呼び出しが最後):
  ファイル「/programming/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py」、1535 行目、__call__ 内
    rv = self.handle_exception(リクエスト、レスポンス、e)
  ファイル「/programming/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py」、1529 行目、__call__ 内
    rv = self.router.dispatch(リクエスト、レスポンス)
  ファイル「/programming/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py」、行 1278、default_dispatcher 内
    return route.handler_adapter(リクエスト、レスポンス)
  ファイル「/programming/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py」、1102 行目、__call__ 内
    戻ります handler.dispatch()
  ファイル「/programming/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py」、行 572、ディスパッチ
    return self.handle_exception(e, self.app.debug)
  ファイル「/programming/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py」、行 570、ディスパッチ
    return メソッド (*args, **kwargs)
  ファイル "/Users/student/Desktop/Movie Rater/MovieRaterBackend/higgsmovies.py"、12 行目、get
    ページ = urllib2.urlopen(サイト)
  ファイル「/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py」、126行目、urlopen
    return _opener.open(url, データ, タイムアウト)
  ファイル "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py"、400 行目、開いている
    応答 = 方法 (要求、応答)
  ファイル "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py"、513 行目、http_response
    「http」、リクエスト、レスポンス、コード、メッセージ、hdrs)
  ファイル "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py"、438 行目、エラー
    return self._call_chain(*args)
  ファイル "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py"、372 行目、_call_chain 内
    結果 = 関数 (*args)
  ファイル "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py"、521 行目、http_error_default 内
    HTTPError(req.get_full_url(), code, msg, hdrs, fp) を上げる
HTTPError: HTTP エラー 400: 不正な要求

これが私のコードです:

    title = self.request.get("title")
    site = "http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=" + constants.ROTTEN_TOMATOES_KEY + "&q=" + title + "&page_limit=1"
    page = urllib2.urlopen(site)
    soup = BeautifulSoup(page)
    self.response.out.write(soup)

constants は、すべてのパスワードなどを含む単なる python ファイルであり、きれいなスープを使用してクリーンアップしていますが、それは問題ではないと確信しています。このコードは、myapplication.com/about?title=your+title+goes+here という URL にアクセスするだけでアクセスできます。ここで、myapplication は Web サイトの URL であり、おそらくいくつかの appspot.com の URL です。

これは、+ 記号を含まない URL で機能します。

どんな助けでも大歓迎です!

4

4 に答える 4