0

アプリ エンジンから urlfetch を使用して https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=[http://www.my-website.dk/]&key=[my-key] をリクエストしようとしていますが、動作していません。

それにアクセスして、次のように my-url をリクエストにハードコーディングすると: https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=http://www.my-website.dk/&key=[my- key] 正常に動作していますが、urlfetch.fetch("https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=%s&key=[my-key]", "http://www. my-website.dk") 動作していません。次のことも試しました:

page_content = urlfetch.fetch(
        url="https://www.googleapis.com/pagespeedonline/v1/runPagespeed",
        payload=params,
        method=urlfetch.GET
      )

そして、次のようにペイロードでパラメーターを提供します。

params = urllib.urlencode({
        "url": page.link,
        "key": "[my-key]"
      })

urlfetch.fetch(u("http://...", page.link) も追加しようとしましたが、結果は同じです.

同じ問題が発生した場合に備えて、systempuntoout からの返信に基づいてコードを編集しました。

params = urllib.urlencode({
        "url": page.link,
        "key": "AIzaSyAFpm6W_OmjQl33JC98mAPkvrdGmrR0i4Y"
      })

      page_content = urlfetch.fetch("https://www.googleapis.com/pagespeedonline/v1/runPagespeed?%s" % params)
4

2 に答える 2

2

まず、urlfetch関数に 2 つのパラメーターを渡しているため、呼び出しにエラーが発生します。関数に url パラメータを 1 つだけ渡すには、2 つの文字列
の間に を使用する必要があります。%

urlfetch.fetch("https://www.goo..e/v1/runPagespeed?url=%s&key=[my-key]" %
                                               "http://www.my-website.dk")

次に、 2 番目の URLをurlencodeしようとしましたか?

import urllib
your_url = {'url': 'http://www.my-website.dk/&key=[my-key]'}
urlfetch.fetch("https://www.g../v1/runPagespeed?%s" % urllib.urlencode(your_url))
于 2011-09-09T07:23:57.607 に答える
0

ペイロードは POST/PUT リクエストにのみ適用されます。GET の場合、パラメータは URL の一部である必要があります

于 2011-09-08T16:55:24.420 に答える