改造,IGDB Api-如何正确传递Api密钥?

时间:2018-08-09 08:11:15

标签: java retrofit api-key

我正在尝试使用改造对互联网游戏数据库(IGDB)Api进行查询。过去,当我使用其他Api(例如电影数据库(TMDB))时,总是将api键作为查询传递进来,因此界面看起来像这样。

@GET("/3/movie/popular")
Call<MovieResults> getPopularMovie(
        @Query("api_key") String apiKey,
        @Query("language") String language,
        @Query("page") int page
);

但是对于IGDB,我认为他们希望我将api键作为标头传递(我不确定100%,如果我错了,请更正我)。我以前从未通过标头传递api-key,因此,通过一些猜测,以下是我的界面的样子。

@Headers({
        "Accept: application/json",
        "user-key: b5bd50####################8b2"
})
@GET("/games")
Call<List<Game>> getGame();

问题是,当我拨打电话时,尽管通话以onResponse结尾,但response.body始终为null。

因此,我在调试模式下运行了代码,然后发现了以下消息:

response = Response{protocol=http/1.1, code=401, message=Unauthorized, url=http://v2000.igdb.com/games/}

我不知道这意味着什么,但是我猜它无法识别授权的api-key?

另一个有趣的异常是,我传入的基本网址是:

"https://api-2445582011268.apicast.io/"

我不知道那是怎么回事:

http://v2000.igdb.com/

如果有人对IGDB有任何经验,请给我一些帮助,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

我已将此API与JAVA一起使用,我可以确认您应该在标头中发送API密钥,因此您所做的事情看起来是正确的。

您获得的基本网址也不正确,请尝试使用https://api-endpoint.igdb.com/,这是推荐的网址。

我还建议您使用Postman试用api,这是测试的绝佳工具。

如果您使用的是Java,则可能要尝试使用其java wrapper