gpt4 book ai didi

java - 使用 Jersey 和 JAX-RS 进行 POST 上传时换行符丢失

转载 作者:行者123 更新时间:2023-12-03 09:25:14 25 4
gpt4 key购买 nike

我正在使用 Jersey 和 JAX-RS 来实现 REST POST 端点。 web.xml 中的实际 servlet 是 com.sun.jersey.spi.spring.container.servlet.SpringServlet。然后,我使用 JAX-RS 来注释我的端点:

  @POST
@Path("foo")
public Response foo(Reader input) throws IOException {
BufferedReader lineReader = new BufferedReader(input);
String line;
while ((line = lineReader.readLine()) != null) {
System.out.println(line);
}

return Response.ok("{}", MediaType.APPLICATION_JSON).build();
}

当我到达端点并提供一个文本文件时,换行符会丢失,并且会作为一行读入。示例:

line 1
line 2
line 3

打印输出:

line 1line 2line 3

我尝试使用 @Consumes("text/plain") 进行注释并将请求 header 设置为 Content-Type:text/plain 但这没有帮助。为什么换行序列被删除?

最佳答案

我使用 curl 上传,这显然删除了换行符

curl -v -X POST -d @input.txt http://localhost/foo

使用 --data-binary 解决了该问题。

curl -v -X POST --data-binary @input.txt http://localhost/foo

关于java - 使用 Jersey 和 JAX-RS 进行 POST 上传时换行符丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com