我使用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")
进行注释并将请求标头设置为Content-Type:text/plain
,但这并没有帮助。为什么要删除换行序列?
答案 0 :(得分:2)
我正在使用curl
上传,这显然会删除换行符
curl -v -X POST -d @input.txt http://localhost/foo
使用--data-binary
代替解决了问题。
curl -v -X POST --data-binary @input.txt http://localhost/foo