0
我需要向身份驗證提供程序(Auth0)發送HTTP請求。我想通過其電子郵件地址獲取一個特定用戶。帶編碼參數的RestTemplate
請求必須去:
curl -H "Authorization: Bearer ..." https://.../users?q=email%3A%22mymail%40abc.de%22&search_engine=v2
我想我的運氣RestTemplate(春季):需要
public void doSomething() {
...
Map<String, String> requestMap = new HashMap<>();
requestMap.put("q", "email%3A%22mymail%40abc.de%22");
requestMap.put("search_engine", "v2");
RestTemplate restTemplate = getRestTemplateForRequestMap();
HttpHeaders headers = getHeaders();
HttpEntity<Map<String, String>> request = new HttpEntity<>(requestMap, headers);
ResponseEntity<UserInfo[]> response = restTemplate.exchange(URI.create(baseApiUrl + "users"), HttpMethod.GET, request, UserInfo[].class);
...
}
private RestTemplate getRestTemplateForRequestMap() {
RestTemplate restTemplate = new RestTemplate();
List messageConverters = new ArrayList<>();
messageConverters.add(new MappingJackson2HttpMessageConverter());
restTemplate.setMessageConverters(messageConverters);
return restTemplate;
}
貌似q
參數的值進行編碼(他們稱之爲它「Lucene查詢語法」)。我嘗試了不同的變化。我甚至把它們編碼爲「硬編碼」。
但是,好像q
參數不起作用,因爲結果不僅包括具有指定電子郵件地址的用戶,而且包括所有用戶。 標題是好的(否則我會得到任何用戶)。
你失去了一些東西?方法無法解決。看起來我不能用這個參數來做。 – mosquito87
不,我正在使用'org.springframework.http.HttpEntity','org.springframework.web.client.RestTemplate;'並且我可以解析方法 –
將URI轉換爲toString時的工作方式。但是,我得到相同的結果(所有用戶,而不是指定的)。 – mosquito87