我是新手。我已经找到了答案,但没有得到任何答案。
无论如何加载没有redirect
的网页?
代码是这样的:
from bottle import get, run, template
@get('/list/item')
def listItems():
r = requests.get('my/url/which/works/')
return r.content
if __name__ == '__main__':
run(host='localhost', port=8080 )
并且网页为空。我还尝试了return r.text
,return template(r.content)
,return str(r.content)
,return str(r.content.decode('utf-8'))
和
nf = urllib.urlopen('my/url/whick/works')
return nf.read()
他们都没有返回我想要的页面。
但是,如果我写这个return r.content[0]
,它就可以了。页面将显示第一个字母,即'<'。但是如果我写return r.content[0:100]
,它会再次返回一个空页面。
如果我在命令行中运行请求,则返回:
>>> import requests
>>> r = requests.get('my/url/which/works/')
>>>
>>> r.content
'<?xml version="1.0" encoding="utf-8" ?> \n<body copyright="...>\n</body>\n'
有可能任何人都能帮忙解决这个问题吗?非常感谢你。
答案 0 :(得分:1)
您的问题未指定您希望在代码按预期工作时看到的内容,但这可能会对您有所帮助:
from bottle import get, run, template, response
@get('/list/item')
def listItems():
r = requests.get('my/url/which/works/')
response.content_type = 'text/plain' # added this
return r.content
...
唯一的变化是您的网络服务器现在将响应的内容类型设置为text/plain
,这应该会让您的浏览器呈现页面。
从长远来看,如果(因为我从你的问题推断)你打算返回XML响应,那么我建议安装一个浏览器插件(here's an example),或者更好的是,使用{{1} }或curl
以查看准确的回复。这将帮助您调试服务器的响应。