2016-07-24 14 views
0

Ich versuche, meine einfache Pokemon API auf etwas anderem als meinem localhost zur Verfügung zu stellen. Die API hat zwei Dateien, client.py und server.py. Ich habe den Befehl 21 market join ausgeführt und eine virtuelle IP bekommen. (10.244.121.0).Wie kann ich meine Bitcoin-API auf dem 21-Markt mit einer virtuellen IP-Adresse hosten?

Ich habe versucht, mein Skript zu ändern, so dass anstelle der client.py Anfrage "http://localhost:5000/" würde es anfordern "http://10.244.121.0:5000/", aber wenn ich die client.py ausführen, erhalte ich einen Fehler beim Anfordern dieser URL. Ich bin ziemlich neu in Python, also weiß ich nicht, was ich tun muss, um diese API für jeden verfügbar zu machen, der sie unter der 10.244.121.0-Adresse anfordert.

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') 

Hier ist der Fehler, den ich bekommen, wenn der Host in der app.run Funktion von 0.0.0.0 auf die virtuelle IP ersetzt:

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',)) 

Jede Hilfe wäre willkommen!

Github Repo: https://github.com/LAMike310/pokedex

Antwort

1

Statt python client.py direkt zu nennen, kann ich jetzt 21 buy http://10.244.121.0:5000/name?id=1 verwenden meine API remote aufrufen.