调用Restful Webservice时,Uri不是绝对exception

以下代码段用于使用restful API调用我的Web服务。

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 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); 

并在运行上述代码时获得此exception

 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) 

我搜索了许多文章,并没有得到我做错的地方。

旁注:我在Apache tomacat7的机器上部署了cas-server-webapp-3.5.0 war

绝对URI指定方案; 一个非绝对的URI被认为是相对的。

http://docs.oracle.com/javase/8/docs/api/java/net/URI.html

那么,也许你的URLEncoder不能正常工作(https位)?

  URLEncoder.encode(uri) 

问题可能是你在已经是URI的东西上调用URLEncoder.encode()。