JSON API 호출을 Python 프로그램에 통합하는 데 도움이 필요합니다.
다음 API를 Python .py 프로그램에 통합하여 호출하고 응답을 인쇄 할 수 있도록하려고합니다.
API 지침에는 API 호출을 허용하려면 베어러 토큰을 생성해야한다고 명시되어 있습니다. 그러나이 토큰을 Python API 요청에 전달자 토큰 인증으로 포함하는 구문이 확실하지 않습니다.
토큰이 포함 된 cURL을 사용하여 위의 요청을 성공적으로 완료 할 수 있습니다. “urllib”및 “요청”경로를 시도했지만 아무 소용이 없습니다.
전체 API 세부 사항 : IBM X-Force Exchange API 문서-IP 평판
답변
헤더 데이터의 키로
import requests
endpoint = ".../api/ip"
data = {"ip": "1.1.2.3"}
headers = {"Authorization": "Bearer MYREALLYLONGTOKENIGOT"}
print(requests.post(endpoint, data=data, headers=headers).json())
답변
requests
모듈 을 사용 하는 경우 대체 옵션은 ” 새 인증 양식 “에 설명 된대로 인증 클래스를 작성하는 것입니다 .
import requests
class BearerAuth(requests.auth.AuthBase):
def __init__(self, token):
self.token = token
def __call__(self, r):
r.headers["authorization"] = "Bearer " + self.token
return r
다음과 같은 요청을 보낼 수 있습니까?
response = requests.get('https://www.example.com/', auth=BearerAuth('3pVzwec1Gs1m'))
auth
기본 인증과 동일한 인수 를 사용할 수 있으며 특정 상황에서 도움이 될 수 있습니다.
답변
토큰은 다음 형식에 따라 Authorization 헤더에 배치되어야합니다.
승인 : Bearer [Token_Value]
아래 코드 :
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