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

Restygwt:格式错误的URI序列

洪旻
2023-03-14

我在resygwt上使用API进行了基于REST的服务,如下所示:

@Path("/search")
@GET
List<User> search(@QueryParam("login") String loginMask) throws RemoteException;

我收到此请求的“格式错误的URI序列”:

http://devsys23:8080/rest/search?login=%25spa%20ce%25

这很奇怪,因为在JavaDoc中提到,默认情况下应该支持这样的请求:

  • 将HTTP查询参数的值绑定到资源方法参数,
  • 资源类字段或资源类bean属性
  • 值是URL解码的,除非使用{@link-Encoded}禁用此功能
  • 注释。可以使用{@link DefaultValue}指定默认值
  • 注释

我尝试在服务器中编辑tomcat连接器。具有useBodyEncodingForURI和URIEncoding=“UTF-8”的xml。还有组织。springframework。网状物滤器已包含CharacterEncodingFilter和forceEncoding集,但它仍然无法工作=(

我应该如何指定应该解码登录参数?谢谢你的建议。

共有1个答案

韩彬
2023-03-14

如果要解码该值,可以创建ContainerResponseFilter,将其注册到资源配置中,然后执行以下操作

String loginValue= queryParams.get("login");
loginValue= URLDecoder.decode(loginValue, "UTF-8");

也许RestyGWT默认对所有参数进行编码。

需要询问restyGWT谷歌讨论:https://groups.google.com/forum/#!论坛/restygwt

 类似资料:
  • 我使用的是GWT2.5.1。我在我的项目中有一个小要求。我们在项目中支持本地化。如果用户输入了无效的语言环境(即除支持的语言外的其他语言),则默认情况下,我们将以英语显示。因此,为了从url获取locale参数,我使用了方法com。谷歌。gwt。使用者客户窗地方getParameterMap()。如果用户输入“%”特殊字符作为区域设置参数,则getParameterMap()将引发异常,即: 那么

  • 我试图使用RPC连接到我的M12 CordaApp并调用nodeIdentity()方法,我得到了org。bouncycastle。cert.CertIOException证书。我认为Java客户端代码可以工作,我可以看到RPC连接,当我尝试调用getProtocolVersion()时,我看到的是正确的协议版本。 以下是调用nodeIdentity()时的堆栈跟踪: 看起来X509证书序列化有问

  • 在将配置单元外部表从RC格式升级为ORC格式并在其上运行MSCK修复表(当我确实从表中选择全部时)时,我得到以下错误- 将RC格式的历史数据迁移到ORC格式的新定义的过程是什么?

  • 我是漏掉了什么,还是一个虫子?

  • 问题内容: 目前,我正在开发一项功能,该功能涉及解析从另一产品收到的XML。我决定对一些实际的客户数据进行一些测试,看起来其他产品正在允许来自用户的输入被认为是无效的。无论如何,我仍然必须尝试找出一种解析它的方法。我们正在使用,但输入出现错误,如下所示。 如你所知,说明中包含似乎是无效标签的内容。现在,此描述标签被称为是叶子标签,并且其中不应包含任何嵌套标签。无论如何,这仍然是一个问题,并且会在

  • 问题内容: 我想要实现一个接受与参数相同的版本,因此我编写了以下函数: 但是,它成为内部的单个数组参数,从而导致仅在格式字符串中填写单个参数。如何强制解释为可变数量的参数? 问题答案: 已经做了您想做的事。查看其来源,可以看到出了什么问题: 请注意,您的代码缺少after 。从规格: 将参数传递给…参数 如果最终参数可分配给切片类型,则在参数后跟时可以将其作为参数的值原样传递。在这种情况下,不会创