【发布时间】:2020-07-19 06:41:50
【问题描述】:
我正在尝试通过 Rest Template 使用 Google Places API。除了使用 pagetoken 获取分页结果外,一切正常。页面令牌是一个很长的字符串,我尝试记录 URL 并打印它。如果我复制粘贴记录的 URL,并在浏览器中尝试,它运行良好,但 API 将其余模板请求识别为无效。
@ResponseBody
@GetMapping("/nearby")
public String nearbyController(@RequestParam String keyword, @RequestParam String location, @RequestParam String type, @RequestParam String radius, @RequestParam(defaultValue = "") String pagetoken) throws RestClientException, URISyntaxException {
final String uri = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=Key_Here&keyword=" + keyword + "&type=" + type + "&radius=" + radius + "&location=" + location + "&pagetoken=" + pagetoken;
RestTemplate restTemplate = new RestTemplate();
logger.info(uri);
String result = restTemplate.getForObject(new URI(uri), String.class);
return result;
}
正常请求运行正常,但是当有页面token时,就是很长的字符串比如
"CsQCQAEAALL-mDkGLJnijEldNf7CbsrkWX_a2SizcU-i60AkJrb20EFAnNMb8Pgm4wYrRQ1bXMOEm1dYbxxojJm14p43cDVylw_6X6RU-5p7hoLI5N3LJ_DMERR_Wwc_n08EeIf4xLk1ZJUJtmEVuAHvDHBf68VALb7RBXvurykkfN4Gb6fUFCQ0xmIhSAGaW9BAtB08Z6EsYdk8HhiRzgswUE4XuA6LBaQguldJXmo5SxJjqC8x5HCfeL3ZzG_DNAbhrx8ozlfDPUYLQk415mO1pw2SJeCAbfogrgaNvqPO1LnhuCzOW6wphB_y9401QwUhtVqwen0-yCJgOHju9Ow0ihJM9ht6k3PjMKDzxkUey4i7Xw8L9dP9zv3IquA3lzaOOgCdqkZ5U37XohJ78PbUWTh55-1eUf1sH04GHs1RWTbzoJbwEhB06aFckoVAbM7Oiz1zAj2YGhT0JEcQ02V7RuH95-a-dcHFew5a3A"
当我从日志中复制整个 URL 并在浏览器中运行时,该 URL 运行良好
【问题讨论】:
-
你得到什么错误?
-
另外你为什么使用restTemplate而不是google java客户端?
-
我收到了来自 Google API 的 INVALID_REQUEST 响应。对不起,我不熟悉 Java 客户端。找不到任何足够新的 Maven 依赖项。我再找找。任何指针表示赞赏
-
mvnrepository.com/artifact/com.google.maps/google-maps-services/…,从今年一月开始。使用客户端将使这一切变得更容易。更多信息here。如果您对其中的任何部分感到困惑,请发布另一个问题
标签: java spring rest google-maps-api-3