Ich verwende den folgenden Code, wo ich Credentials für grundlegende HTTP-Authentifizierung für meinen Server, der Spring Security verwendet. Leider habe ich ein Problem mit Sonderzeichen wie é, ò etc ... Ich bekomme auf dem Server das Fragezeichen anstelle des richtigen Zeichens Jemand weiß, wie man es löst? Ich habe zu finden Codierung zu setzen, ohne ErfolgSonderzeichen mit Spring-Authentifizierung
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class RestClient extends RestTemplate {
public RestClient(String username, String password) {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(null, -1),
new UsernamePasswordCredentials(username, password));
HttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
}
}
Dann rufe ich Web-Service mit Federklasse:
RestClient restClient = new RestClient(username, password);
response = restClient.getForObject(addQueryParam(url, queryParams), Response.class);
UPDATE:
diesen Code verwenden ich das gleiche haben Fehler (Fragezeichen statt Sonderzeichen). Irgendeine Idee?
public class RestClient extends RestTemplate {
private static RestClient instance;
private RestClient(String username, String password) {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(null, -1),
new UsernamePasswordCredentials(username, password));
HttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
}
public static synchronized RestClient getInstance(String username, String password){
if (instance == null){
instance = new RestClient(username, password);
instance.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
}
return instance;
}
}
"Ich habe ein Problem mit Sonderzeichen wie é, ò usw. Leider". Ok, was genau ist das Problem? – rmlan
Ich erhalte auf dem Server Fragezeichen anstelle des korrekten Zeichens – luca