繁体   English   中英

python中的身份验证如何工作?

[英]How does authentication in python work?

我正在尝试musixmatch api 要获取json数据,我需要先进行身份验证,我具有api密钥,但我无法进行身份验证。 我想知道如何使用urllib2进行身份验证:

附:我尝试这样做:

def download_file(url, API_KEY_BASE_64):
    req = urllib2.Request(url)
    req.add_header("Authorization", "Basic "+API_KEY_BASE_64)
    return urllib2.urlopen(req).read()

这里

url="http://api.musixmatch.com/ws/1.1/track.lyrics.get?track_id=15953433"
api_key="MYAPIKEY"

我得到的回应是:

{"message":{"header":{"status_code":401,"execute_time":0.0019550323486328,"maintenance_id":0},"body":""}}

这不是python中的身份验证问题,而是api期望api密钥的方式有问题。

此页面: https : //developer.musixmatch.com/documentation/input-parameters指出您必须始终将api密钥作为参数发送,因此此代码正是这样做的:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2

api_key="XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Note how I'm adding the api key as a parameter of the request url
url="http://api.musixmatch.com/ws/1.1/track.lyrics.get?track_id=15953433&apikey={}".format(api_key)

req = urllib2.Request(url)
req.add_header("Accept", "application/json")
response = urllib2.urlopen(req).read()
print response

PS:您还可以使用此库( https://github.com/monkeython/musixmatch ),它包装了api,并且似乎易于使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM