diff --git a/ahserver/proxyProcessor.py b/ahserver/proxyProcessor.py new file mode 100644 index 0000000..8835e41 --- /dev/null +++ b/ahserver/proxyProcessor.py @@ -0,0 +1,40 @@ +from aiohttp import web +from aiohttp import client +from .baseProcessor import * + +class proxyProcessor(BaseProcessor): + @classmethod + def isMe(self,name): + return name=='proxy' + + async def path_call(self, request, params={}): + await self.set_run_env(request) + path = self.path + url = self.resource.entireUrl(request, path) + ns = self.run_ns + ns.update(params) + te = self.run_ns['tmpl_engine'] + txt = await te.render(url,**ns) + data = json.loads(txt) + return data + + async def datahandle(self,request): + d = await self.path_call(request) + reqH = request.headers.copy() + async with client.request( + request.method, + d['url'], + headers = reqH, + allow_redirects=False, + data=await req.read()) as res: + headers = res.headers.copy() + body = await res.read() + self.retResponse = web.Response( + headers = headers, + status = res.status, + body = body + ) + + def setheaders(self): + pass +