Hacer una llamada a la API en Python con una API que requiere un token de portador
python-2.7 curl (2)
Buscando ayuda con la integración de una llamada JSON API en un programa Python.
Estoy buscando integrar la siguiente API en un programa .py de Python para permitir que se llame y se imprima la respuesta.
La guía de API establece que se debe generar un token de portador para permitir las llamadas a la API, lo que he hecho con éxito. Sin embargo, no estoy seguro de la sintaxis para incluir este token como autenticación de token de portador en la solicitud de la API de Python.
Puedo completar con éxito la solicitud anterior usando cURL con un token incluido. He intentado "urllib" y "solicitudes" rutas pero en vano.
Detalles completos de la API: Documentación de la API de IBM X-Force Exchange - Reputación de IP
El token se debe colocar en un encabezado de autorización de acuerdo con el siguiente formato:
Autorización: Portador [Token_Value]
Código abajo:
import urllib2
import json
def get_auth_token()
''''''
get an auth token
''''''
req=urllib2.Request("https://xforce-api.mybluemix.net/auth/anonymousToken")
response=urllib2.urlopen(req)
html=response.read()
json_obj=json.loads(html)
token_string=json_obj["token"].encode("ascii","ignore")
return token_string
def get_response_json_object(url, auth_token)
''''''
returns json object with info
''''''
auth_token=get_auth_token()
req=urllib2.Request(url, None, {"Authorization": "Bearer %s" %auth_token})
response=urllib2.urlopen(req)
html=response.read()
json_obj=json.loads(html)
return json_obj
Solo significa que espera que como clave en sus datos de encabezado
import requests
endpoint = ".../api/ip"
data = {"ip":"1.1.2.3"}
headers = {"Authorization":"Bearer MYREALLYLONGTOKENIGOT"}
print requests.post(endpoint,data=data,headers=headers).json()