Domanda

Sto cercando di richiedere https://www.googleapis.com/pagespeedonline/v1/runpagespeed?url= !! non funziona.

Quando lo accedo e hordcode My-Url nella richiesta in questo modo: https://www.googleapis.com/pagespeedonline/v1/runpagespeed?url=http://www.my-website.dk/&key= !! Key] Funziona bene, ma quando uso UrlFetch.fetch ("https://www.googleapis.com/pagespeedonline/v1/runpagespeed?url=%s&key=tasmy-key], "http: // www. my-website.dk ") non funziona, ho anche provato:

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

e quindi servire i parametri nel payload in questo modo:

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

Ma il risultato è lo stesso, non funziona e il servizio mi dà il codice di stato HTTP 400. Ho anche provato ad aggiungere urlfetch.fetch (u ("http: // ...", page.link) ma il risultato è lo stesso .

Ho modificato il codice in base alla risposta di SystemPuntoout nel caso in cui chiunque dovrebbe riscontrare lo stesso problema:

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

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

Soluzione

Prima il urlfetch La chiamata ha un errore perché stai passando due parametri alla funzione.
Dovresti usare il % tra le due stringhe per passare solo un parametro URL alla funzione.

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

Allora, hai provato a farlo Urlencode Il secondo URL?

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))

Altri suggerimenti

Il payload è applicabile solo per le richieste postali/put. Per ottenere, i tuoi parametri devono far parte dell'URL

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top