3

当调用 Genius API(音乐歌词服务)搜索功能以按标题搜索特定歌曲时,我的 GET 请求已成功处理并返回 HTTP 状态代码 200,但 JSON 响应未返回歌曲的命中我搜索过。

{u'meta': {u'status': 200}, u'response': {u'hits': []}}

注意 hits 键的值是一个空数组。这很奇怪,因为当使用相同的 OAuth2 访问令牌在 Genius API Docs 站点https://docs.genius.com/#web_pages-h2上“测试”相同的调用时,我能够为相同的搜索获得 10 次点击. 我已经尝试搜索具有相同结果的多个歌曲标题。

我正在使用 Python 2.7.12,并且我用下面的 AccessTOKEN 替换了我的 API 调用访问令牌,所以我没有公开共享它(尽管我正在使用正确的访问令牌进行测试)

#!/usr/bin/env python
# -*- coding=utf-8 -*-
import requests

baseUrl = "http://api.genius.com"

headers = {'Authorization': 'Bearer AccessTOKEN'}
searchUrl = baseUrl + "/search"
songTitle = "Shelter"
data = {'q': songTitle}
response = requests.get(searchUrl, data=data, headers=headers)
json = response.json()
print json

有任何想法吗?

4

1 回答 1

2

data参数用于POST请求。由于这是一个GET请求,您应该将您的传递dataparams参数。

response = requests.get(searchUrl, params=data, headers=headers)
于 2017-08-12T07:58:58.750 回答