我正在尝试使用应用程序引擎中的urlfetch请求[ https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=[http://www.my-website.dk/]&key=[my-key],但它不起作用。
当我访问它并将我的-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]"
})但结果是一样的,它不工作,并且服务给我HTTP状态代码400。我也尝试添加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)发布于 2011-09-09 15:23:58
首先,urlfetch调用有一个错误,因为您向函数传递了两个参数。
您应该在两个字符串之间使用%,以便只将一个url参数传递给函数。
urlfetch.fetch("https://www.goo..e/v1/runPagespeed?url=%s&key=[my-key]" %
"http://www.my-website.dk")那么,你有没有尝试过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-09 00:55:24
有效负载仅适用于POST/PUT请求。对于GET,参数必须是URL的一部分
https://stackoverflow.com/questions/7351648
复制相似问题