使用Retrofit调用Google Books API时指定作者报HTTP 503错误
Retrofit调用Google Books API 503错误解决方案
问题分析
你错误地将Google Books API的查询参数当作路径参数处理。q=inauthor:"{author}"属于URL查询参数部分,而非路径的组成部分,使用@Path注解会生成格式非法的请求URL,导致服务器无法解析请求,返回503状态码。
修正代码
将@Path替换为@Query,并规范API接口定义:
@GET("volumes") suspend fun searchBookByAuthor( @Query("q") query: String )
调用示例
构造包含inauthor:前缀的查询字符串发起请求:
// 搜索作者为"J.K. Rowling"的图书 searchBookByAuthor("inauthor:\"J.K. Rowling\"")
额外提示
- Retrofit会自动处理作者名中的空格、特殊字符的URL编码,无需手动操作
- Google Books API部分请求需要合法的API密钥,无密钥可能触发限流或服务不可用错误,建议补充
key查询参数
内容的提问来源于stack exchange,提问作者S.alhaider
相关产品推荐
相关产品推荐

