如何在aiohttp服务器响应正文中提供客户端请求标头和服务器响应标头?

时间:2017-04-13 18:19:41

标签: python http head aiohttp

下面是一个简单的aiohttp服务器代码,我想知道如何在服务器的响应中返回所有客户端的http请求头信息和服务器响应http头信息。

一个简单的目标是当我使用Web浏览器打开http://127.0.0.1:8080时,该网页可以立即显示客户端的http请求头和服务器响应http头。

感谢任何帮助。

from aiohttp import web

async def handle(request):

    request_head = web.Request.headers          //Q1?
    response_head = web.Response.headers        //Q2?

    return web.Response("\n".join((request_head,response_head)))

app = web.Application()
app.router.add_get('/', handle)

web.run_app(app)

1 个答案:

答案 0 :(得分:0)

管理得到了一个有关响应头部缺陷的肮脏解决方案 - 不太确定第二个web.Response会改变标题本身,任何改进都表示赞赏,谢谢。

from aiohttp import web


async def handle(request):

    request_head = tuple((k.encode('utf-8'), v.encode('utf-8')) for k, v in request.headers.items())

    resp = web.Response(text = str(request_head))
    response_head = tuple((k.encode('utf-8'), v.encode('utf-8')) for k, v in resp.headers.items())

    resp = web.Response(text = "\n".join((str(request_head),str(response_head))))

    return resp

app = web.Application()
app.router.add_get('/', handle)
web.run_app(app)