【发布时间】:2019-01-16 14:49:34
【问题描述】:
我正在尝试使用改造对互联网游戏数据库 (IGDB) Api 进行查询。以前我在使用其他Api时,比如电影数据库(TMDB),api-keys总是作为查询传入的,所以界面看起来是这样的。
@GET("/3/movie/popular")
Call<MovieResults> getPopularMovie(
@Query("api_key") String apiKey,
@Query("language") String language,
@Query("page") int page
);
但是对于 IGDB,我认为他们希望我将 api-key 作为标头传递(我不是 100% 确定,如果我错了,请纠正我)。我以前从未通过标头传递 api-key,所以猜测一下,我的界面如下所示。
@Headers({
"Accept: application/json",
"user-key: b5bd50####################8b2"
})
@GET("/games")
Call<List<Game>> getGame();
问题是,当我拨打电话时,虽然电话以 onResponse 结束,但 response.body 始终为空。
所以,我在调试模式下运行代码,我发现了这条消息:
response = Response{protocol=http/1.1, code=401, message=Unauthorized, url=http://v2000.igdb.com/games/}
我不知道这是什么意思,但我猜它没有识别授权的 api-key?
另一个有趣的异常是,我传入的基本 url 是:
"https://api-2445582011268.apicast.io/"
我不知道结果如何:
http://v2000.igdb.com/
如果有人对 IGDB 有任何经验,请给我一些帮助,将不胜感激。
【问题讨论】:
-
您通过标头传递令牌的方式对我来说看起来不错。您是否尝试过使用 Postman 或 curl 发出请求?看看这是否成功会很有趣。
-
显然是我的基本网址中的错误。感谢您推荐 Postman,不知道有这样的应用程序。