0

我正在努力使用改造的路径参数编码:

  • http://localhost:8080/nuxeo/api/v1是我的基本网址。
  • 我有这个电话@GET("path/{documentPath}") Call<Document> fetchDocumentByPath(@Path("documentPath") String docPath);

  • 作为参数,我正在设置以下内容:default-domain/blabla

  • 我对我的 tomcat 应用程序运行查询,我得到了这个答案

Response{protocol=http/1.1, code=400, message=Bad Request, url=http://localhost:8080/nuxeo/api/v1/path/default-domain%2Fblabla}

  • 即使我把 encode = true 说“不要编码我的参数,它已经编码了”,它仍然在编码它。

  • 此外,在改造中,如果我们提出以下断言,则此测试retrofit2.RequestBuilderTest#getWithEncodedPathParam不起作用:Request request = buildRequest(Example.class, "po/ng");assertThat(request.url().toString()).isEqualTo("http://example.com/foo/bar/po/ng/");

Tomcat 出于安全原因限制了他的 URL 验证:http ://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450 。

所以我想直接在我的路径参数中发送“/”而不用 %2F 编码。我怎样才能实现它?

谢谢!

4

1 回答 1

0

由于parent-2.0.0-beta4,注释的参数@Path现在可以正常工作。

于 2016-03-30T03:27:43.213 回答