L'extrait de code ci-dessous utilise pour appeler mon service Web à l'aide d'une API reposante.
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
String uri= "https://127.0.0.1:8443/cas-server-webapp-3.5.0/login";
WebResource resource = client.resource(URLEncoder.encode(uri));
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("username", "suresh");
queryParams.add("password", "suresh");
resource.queryParams(queryParams);
ClientResponse response = resource.type(
"application/x-www-form-urlencoded").get(ClientResponse.class);
String en = response.getEntity(String.class);
System.out.println(en);
Et obtenir cette exception lors de l'exécution du code ci-dessus
com.Sun.jersey.api.client.ClientHandlerException: Java.lang.IllegalArgumentException: URI is not absolute
at com.Sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.Java:151)
at com.Sun.jersey.api.client.Client.handle(Client.Java:648)
at com.Sun.jersey.api.client.WebResource.handle(WebResource.Java:680)
J'ai recherché de nombreux articles sur Google et je n'ai pas réussi à me tromper.
Note complémentaire: cas-server-webapp-3.5.0
guerre déployée sur ma machine dans Apache tomacat7
Un URI absolu spécifie un schéma; un URI qui n'est pas absolu est dit relatif.
http://docs.Oracle.com/javase/8/docs/api/Java/net/URI.html
Donc, peut-être que votre URLEncoder ne fonctionne pas comme vous l'attendez (le bit https)?
URLEncoder.encode(uri)
Le problème est probable que vous appelez URLEncoder.encode () sur quelque chose qui est déjà un URI.