java - Jersey 客户错误请求

标签 java rest jersey jax-rs

我有以下客户端代码:

String filePath = "/testzip/123/TEST-test.zip";
target = mainTarget.path("file").path("{filePath}");
Invocation.Builder invocationBuilder =  target
                .resolveTemplate("filePath", filePath)
                .request(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_OCTET_STREAM);

Response response = invocationBuilder.get();

下面是我的服务器代码:

@GET
@Path("{filePath}")
@Produces({MediaType.APPLICATION_OCTET_STREAM})
public Response get(@PathParam("filePath") String filePath) {
    File file = new File(filePath);
    return Response.status(Response.Status.OK).entity(file).build();
}

当我发送以下文件路径时,该客户端抛出错误请求异常:

String filePath = "/testzip/123/TEST-test.zip";

但是当我发送以下文件路径(简单字符串)时它工作正常:

String filePath = "testzip";

我无法弄清楚为什么当路径参数中存在正斜杠(/)时它不起作用。

最佳答案

我相信默认情况下,@PathParam 中不能包含 /

编辑看看这里:Tomcat, JAX-RS, Jersey, @PathParam: how to pass dots and slashes?

关于java - Jersey 客户错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930773/

相关文章:

java - 带有 NIO 的 REST API?

java - 在 Jackson/Jersey JAVA 上发布带有多个参数 JSON 和 String 的请求

java - 有没有办法将 JAX-RS 注释接口(interface)与 Jersey 作为客户端一起使用?

java - 如何将类分配给graphstream中的节点

java - 分隔文本文件中的所有单词

java - 知道这个错误在 SVN 中意味着什么吗?

java - cXML 相当于 json 吗?

rest - 对嵌套资源上的POST和PUT的正确RESTful响应

java - 添加版权信息生成的java代码 - Jcodemodel

java - Jersey 单元测试 : in memory container vs grizzly