Python-Twisted: proxy inverso a la API HTTPS: no se pudo conectar

Estoy tratando de construir un proxy inverso para hablar con ciertas API (como Twitter, Github, Instagram) que luego puedo llamar con mi proxy inverso a cualquier aplicación (cliente) que desee (piense en ello como un administrador de API) .

Además, estoy usando un contenedor LXC para hacer esto.

Por ejemplo, aquí está el código más simple que pirateé de los ejemplos en Twisted Docs:

from twisted.internet import reactor
from twisted.web import proxy, server
from twisted.python.log import startLogging
from sys import stdout
startLogging(stdout)

site = server.Site(proxy.ReverseProxyResource('https://api.github.com/users/defunkt', 443, b''))
reactor.listenTCP(8080, site)
reactor.run()

Cuando hago CURL dentro del contenedor, recibo una solicitud válida (lo que significa que obtengo la respuesta JSON adecuada).

Así es como usé el comando CURL:

curl https://api.github.com/users/defunkt

Y aquí está la salida que obtengo:

{
  "login": "defunkt",
  "id": 2,
  "avatar_url": "https://avatars.githubusercontent.com/u/2?v=3",
  "gravatar_id": "",
  "url": "https://api.github.com/users/defunkt",
  "html_url": "https://github.com/defunkt",
  "followers_url": "https://api.github.com/users/defunkt/followers",
  "following_url": "https://api.github.com/users/defunkt/following{/other_user}",
  "gists_url": "https://api.github.com/users/defunkt/gists{/gist_id}",
  "starred_url": "https://api.github.com/users/defunkt/starred{/owner}{/repo}",
  "subscriptions_url": "https://api.github.com/users/defunkt/subscriptions",
  "organizations_url": "https://api.github.com/users/defunkt/orgs",
  "repos_url": "https://api.github.com/users/defunkt/repos",
  "events_url": "https://api.github.com/users/defunkt/events{/privacy}",
  "received_events_url": "https://api.github.com/users/defunkt/received_events",
  "type": "User",
  "site_admin": true,
  "name": "Chris Wanstrath",
  "company": "GitHub",
  "blog": "http://chriswanstrath.com/",
  "location": "San Francisco",
  "email": "[email protected]",
  "hireable": true,
  "bio": null,
  "public_repos": 107,
  "public_gists": 280,
  "followers": 15153,
  "following": 208,
  "created_at": "2007-10-20T05:24:19Z",
  "updated_at": "2016-02-26T22:34:27Z"
}

Sin embargo, cuando intento buscar el proxy a través de Firefox usando:

http://10.5.5.225:8080/

Me sale: "No se pudo conectar"

Así es como se ve mi registro Twisted:

2016-02-27 [-] Registro abierto.

2016-02-27 [-] Sitio que comienza en 8080

2016-02-27 [-] Inicio de fábrica

2016-02-27 [-] Inicio de fábrica

2016-02-27 [-] "10.5.5.225" - - [27 / feb / 2016: +0000] "GET / HTTP / 1.1" 501 26 "-" "Mozilla / 5.0 (X11; Debian; Linux x86_64; rv : 44.0) Gecko / 20100101 Firefox / 44.0 "

2016-02-27 [-] Parando la fábrica

¿Cómo puedo usar Twisted para hacer una llamada a la API (la mayoría de las API son HTTPS hoy en día de todos modos) y obtener la respuesta requerida (básicamente, cuál debería ser la respuesta "200" / JSON)?

Traté de mirar esta pregunta:Convierta proxy HTTP a proxy HTTPS en Twisted

Pero no tenía mucho sentido desde el punto de vista de la codificación (ni mencionar nada sobre proxy inverso).

** Editar: también intenté cambiar la llamada de la API HTTPS para una llamada HTTP normal usando:

curl http [colon] [slash] [slash] openlibrary [dot] org [slash] autores [slash] OL1A.json

(La URL anterior se ha formateado para evitar problemas de conflicto de enlaces)

Sin embargo, sigo teniendo el mismo error en mi navegador (como se mencionó anteriormente).

** Edit2: He intentado ejecutar su código, pero me sale este error:

Captura de pantalla de error

Si observa la imagen, verá el error (al ejecutar el código) de:

builtins.AttributeError: el objeto 'str' no tiene el atributo 'decode'

Respuestas a la pregunta(1)

Su respuesta a la pregunta