Python-Twisted: обратный прокси к HTTPS API: не удалось подключиться

Я пытаюсь создать обратный прокси-сервер для взаимодействия с определенными API-интерфейсами (такими как Twitter, Github, Instagram), которые затем я могу вызывать с помощью обратного прокси-сервера для любых (клиентских) приложений, которые мне нужны (воспринимайте это как API-менеджер) ,

Также для этого я использую LXC-контейнер.

Например, вот самый простой код, который я взломал из примеров на 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()

Когда я выполняю CURL внутри контейнера, я получаю действительный запрос (то есть, я получаю соответствующий ответ JSON).

Вот как я использовал команду CURL:

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

И вот результат, который я получаю:

{
  "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"
}

Тем не менее, когда я пытаюсь получить прокси через Firefox, используя:

http://10.5.5.225:8080/

Я получаю: «Не удалось подключиться»

Вот как выглядит мой журнал Twisted:

2016-02-27 [-] Журнал открыт.

2016-02-27 [-] Сайт начинается с 8080

2016-02-27 [-] Запуск завода

2016-02-27 [-] Запуск завода

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 [-] Остановка завода

Как я могу использовать Twisted, чтобы сделать вызов API (большинство API в настоящее время являются HTTPS в любом случае) и получить требуемый ответ (в основном, каким должен быть ответ «200» / JSON)?

Я попытался посмотреть на этот вопрос:Конвертировать HTTP-прокси в HTTPS-прокси в Twisted

Но это не имело особого смысла с точки зрения кодирования (или упоминания чего-либо об обратном проксировании).

** Изменить: я также попытался отключить вызов API HTTPS для обычного вызова HTTP, используя:

curl http [двоеточие] [слэш] [слэш] openlibrary [точка] орг [слэш] авторы [слэш] OL1A.json

(URL выше был отформатирован во избежание конфликта ссылок)

Тем не менее, я все еще получаю ту же ошибку в моем браузере (как упоминалось выше).

** Edit2: я попытался запустить ваш код, но я получаю эту ошибку:

Ошибка-экран

Если вы посмотрите на изображение, вы увидите ошибку (при запуске кода):

builtins.AttributeError: у объекта 'str' нет атрибута 'decode'

Ответы на вопрос(1)

Ваш ответ на вопрос