2016-03-29 39 views
0

Kimlik doğrulama sağlayıcısına (Auth0) bir HTTP isteği göndermem gerekiyor. E-posta adresine göre belirli bir kullanıcı almak istiyorum. Ben RestTemplate ile (Bahar), şansımı denedim Şifreli parametrelere sahip RestTemplate

curl -H "Authorization: Bearer ..." https://.../users?q=email%3A%22mymail%40abc.de%22&search_engine=v2 

:
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 parametresinin değeri benziyor

kodlanması gerekir (dedikleri

istek gitmek zorunda "Lucene sorgu sözdizimi"). Farklı varyasyonları denedim. Hatta onları kodlanmış "kodlanmış" koydum.

Ancak, q parametresinin çalışmadığı gibi görünüyor, sonuç yalnızca belirtilen e-posta adresine sahip olan tüm kullanıcıları değil, tüm kullanıcıları da içeriyor. Başlıklar gayet iyi (aksi halde hiç kullanıcı almayacaktım).

cevap

0

Sen restTemplate.exchange bir aşırı yöntem üzerinde üzerinde isteği parametrelerinden harita ekleyebilirsiniz:

ResponseEntity<UserInfo[]> response = restTemplate.exchange(URI.create(baseApiUrl + "users"), HttpMethod.GET, 
request, UserInfo[].class,requestMap); 
+0

eksik musunuz şey? Yöntem çözülemiyor. Görünüşe göre bu parametrelerle yapamam. – mosquito87

+0

Hayır, org.springframework.http.HttpEntity', org.springframework.web.client.RestTemplate; kullanıyorum ve URI toString dönüştürürken –

+0

yöntemini çözebilirim. Ancak aynı sonucu elde ediyorum (belirtilen kullanıcı yerine tüm kullanıcılar). – mosquito87