2017-04-13 56 views
1

下面是一個簡單的aiohttp服務器代碼,我想知道如何在服務器響應中返回所有客戶端的http請求頭信息和服務器響應http頭信息。如何在aiohttp服務器響應正文中提供客戶端請求標頭和服務器響應標頭?

一個簡單的目標是當我用網絡瀏覽器打開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) 

回答

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) 
相關問題