Exemplo n.º 1
0
def fetch_content(request: werkzeug.Request,
                  response: werkzeug.Response) -> None:
    url = request.args["url"]
    proxy_query_header = make_request_headers(request.headers)

    try:
        proxy_response = requests.get(url,
                                      headers=proxy_query_header,
                                      timeout=TIMEOUT)
    except requests.exceptions.SSLError:
        # Invalid SSL Certificate
        response.status = 526
    except requests.exceptions.ConnectionError:
        response.status = 523
    except requests.exceptions.Timeout:
        response.status = 524
    except requests.exceptions.TooManyRedirects:
        response.status = 520
    else:
        response.body = proxy_response.content
        if proxy_response.status_code == 500:
            response.status = 520
        else:
            copy_proxy_headers(proxy_response, response)

    response.headers["Access-Control-Allow-Origin"] = get_access_url(
        request.headers)