python python-2.7 curl ibm-cloud pycurl

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