def handle_wsdl_request(self, req):
ctx = AioMethodContext(self, req, 'text/xml; charset=utf-8',
aiohttp_app=self._aiohttp_app)
if self.doc.wsdl11 is None:
raise web.HTTPNotFound(headers=ctx.transport.resp_headers)
if self._wsdl is None:
self._wsdl = self.doc.wsdl11.get_interface_document()
ctx.transport.wsdl = self._wsdl
if ctx.transport.wsdl is None:
with self._mtx_build_interface_document:
try:
ctx.transport.wsdl = self._wsdl
if ctx.transport.wsdl is None:
actual_url = urlunparse([req.scheme, req.host, req.path, '', '', ''])
self.doc.wsdl11.build_interface_document(actual_url)
ctx.transport.wsdl = self._wsdl = self.doc.wsdl11.get_interface_document()
except Exception as e:
logger.exception(e)
ctx.transport.wsdl_error = e
self.event_manager.fire_event('wsdl_exception', ctx)
raise web.HTTPInternalServerError(headers=ctx.transport.resp_headers)
self.event_manager.fire_event('wsdl', ctx)
ctx.transport.resp_headers['Content-Length'] = str(len(ctx.transport.wsdl))
ctx.close()
return await self.make_streaming_response(
req=req,
code=200,
headers=ctx.transport.resp_headers,
content=[ctx.transport.wsdl])
评论列表
文章目录