当前位置: 首页 > 知识库问答 >
问题:

Uri不绝对异常获取而调用RESTful Webservice

许嘉珍
2023-03-14

下面的代码片段用于使用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<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); 

并在运行上述代码时获取此异常

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)

我在谷歌上搜索了很多文章,没有找到我做错的地方。

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

共有3个答案

计承德
2023-03-14

对于出现此错误的其他人,并且它与OP问题不是100%相关,请检查您正在传递值,并且在Spring启动的情况下它不为空:@值注释。

毛缪文
2023-03-14

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

鲁熙云
2023-03-14

绝对URI指定一个方案;非绝对的URI称为相对URI。

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

所以,也许你的URLEncoder没有像你预期的那样工作(https位)?

    URLEncoder.encode(uri) 
 类似资料:
  • 问题内容: 以下代码段用于使用Restful API调用我的Web服务。 并在运行上述代码时获取此异常 我用谷歌搜索了很多文章,却没有弄错我做错了什么。 旁注: 在Apache tomacat7中的机器上部署了war 问题答案: 绝对URI指定方案;并非绝对的URI被认为是相对的。 http://docs.oracle.com/javase/8/docs/api/java/net/URI.html

  • 我的应用程序中有一个活动,允许用户逐个从设备中选择多个文件,我正在使用这样的意图: 这工作得很好,我正在获取所选文件的Uri,它们看起来像这样: 然后,如果文件是图像,我将使用以下方式对其进行解码: 当用户单击按钮时,我通过 intent 将 Uris 列表传递给另一个活动,在此活动中,在 AsyncTask 中,我正在以 base64 编码文件以通过网络发送: 问题是,当我打开inputStre

  • 问题内容: 我有以下代码 当我使用没有权限的用户时,我得到的不是。 问题答案: 是一个已检查的异常,但它是从未在其子句中声明的方法抛出的(实际上是从拦截该方法的方面)。这是Java中的异常情况,因此您的异常用包裹了,并且未经检查。 要按原样获取您的异常,您可以在方面所拦截的方法的子句中声明它,也可以使用另一个未经检查的异常(即的子类)代替。

  • 我正在制作一个不和谐的JDA机器人,当用户发送消息:前缀($)hastebin他们的代码时,机器人将创建一个请求hastebin并粘贴他们的代码,之后他将粘贴网址并打印到控制台(我将在解决问题后将其作为消息发送)。 这是我的HastebinCommand类: 这是我的Hastebin请求类: 我的错误: C:\Users\user\Documents\Java\Java Projects\Disc

  • 问题内容: 我在应用程序上加载一堆图像时遇到错误,我不确定是什么原因引起的。 这是他得到的错误。线135在底部。 我认为他的手机内存不足。他使用的是2010年生产的Desire HD。此方法的作用是从服务器获取图像并将其保存在哈希图中。以及将其显示在屏幕上。关于如何防止OUTMEMORYERROR的任何想法? 我当时正在考虑建立一个计数器,如果有超过20张图像,该计数器只会清除哈希图。 Logca

  • 问题内容: 我正在执行spring的简单Dependency Injection程序并获取此异常。我已经包含了common-logging1.1.1.jar和spring.jar文件。你能帮忙吗? 问题答案: 如果你正在使用maven来管理依赖项,请在中添加以下行: