2016-07-24 2 views
0

Я пытаюсь сделать мой простой API Pokemon доступным для чего-то другого, кроме моего localhost. API имеет два файла: client.py и server.py. Я запустил команду 21 market join и получил виртуальный IP-адрес. (10.244.121.0).Как я могу разместить свой Bitcoin API на рынке 21 с помощью Virtual IP?

Я пробовал изменить свой сценарий так, чтобы вместо client.py с запросом «http://localhost:5000/» он запрашивал «http://10.244.121.0:5000/», но когда я запускаю client.py, я получаю сообщение об ошибке при запросе этого URL-адреса. Я довольно новичок в Python, поэтому не знаю, что мне нужно сделать, чтобы сделать этот API доступным для всех, кто его запрашивает по адресу 10.244.121.0.

client.py:

... 
# server address 
server_url = 'http://10.244.121.0/' 


def name(): 
    id = input("Please enter a Pokemon ID: ") 
    sel_url = server_url + 'name?id={0}' 
    answer = requests.get(url=sel_url.format(id)) 
    print(answer.text) 

if __name__ == '__main__': 
    name() 

server.py:

... 
    @app.route('/name') 
    @payment.required(1) 
    def answer_question(): 

     # extract answer from client request 
     id = request.args.get('id') 
     url = 'http://pokeapi.co/api/v2/pokemon/' + id 

     response = requests.get(url) 
     pokemonData = json.loads(response.text) 
     pokemonName = pokemonData['name'] 
     print(pokemonName) 
     return pokemonName 

    if __name__ == '__main__': 
     app.run(host='0.0.0.0') 

Здесь ошибка я получаю при замене узла в функции app.run от 0.0.0.0 к виртуальному IP:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.244.121.0', port=80): Max retries exceeded with url: /name?id=1 
    (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f98d6b6e470>: 
    Failed to establish a new connection: [Errno 111] Connection refused',)) 

Любая помощь будет оценена!

Github репо: https://github.com/LAMike310/pokedex

ответ

1

Вместо вызова python client.py непосредственно, теперь я могу использовать 21 buy http://10.244.121.0:5000/name?id=1 назвать свой API удаленно.

Смежные вопросы