handlers.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:jussi 作者: steemit 项目源码 文件源码
def fetch_http(sanic_http_request: HTTPRequest,
                     jsonrpc_request: SingleJsonRpcRequest,
                     url: str,
                     batch_index: int) -> SingleJsonRpcResponse:

    session = sanic_http_request.app.config.aiohttp['session']
    args = sanic_http_request.app.config.args
    headers = {}
    headers['x-amzn-trace_id'] = sanic_http_request.headers.get('x-amzn-trace-id')
    headers['x-jussi-request-id'] = sanic_http_request.headers.get('x-jussi-request-id')

    upstream_request = {k: jsonrpc_request[k] for k in
                        {'jsonrpc', 'method', 'params'} if k in jsonrpc_request}
    upstream_request['id'] = sanic_http_request['request_id_int'] + batch_index

    with async_timeout.timeout(args.upstream_http_timeout):
        async with session.post(url, json=upstream_request, headers=headers) as resp:
            upstream_response = await resp.json()

        del upstream_response['id']
        if 'id' in jsonrpc_request:
            upstream_response['id'] = jsonrpc_request['id']
        return upstream_response
# pylint: enable=no-value-for-parameter
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号