Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jersey和JAX-RS进行后期上传时,换行符丢失_Java_Rest_Jersey_Jax Rs - Fatal编程技术网

Java 使用Jersey和JAX-RS进行后期上传时,换行符丢失

Java 使用Jersey和JAX-RS进行后期上传时,换行符丢失,java,rest,jersey,jax-rs,Java,Rest,Jersey,Jax Rs,我正在使用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 Buffe

我正在使用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();
  }
当我点击端点a以提供文本文件时,换行符丢失,并作为一行读入。例如:

line 1
line 2
line 3
打印出:

line 1line 2line 3

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

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

curl -v -X POST -d @input.txt http://localhost/foo
改为使用
--数据二进制
解决了问题

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

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

curl -v -X POST -d @input.txt http://localhost/foo
改为使用
--数据二进制
解决了问题

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

从结果来看,while循环似乎只执行了一次,你可以试着在while循环中放入一个计数器,我认为整个文件都被读取为一行字符串是的,while循环迭代一次,因为换行符没有通过结果,while循环似乎只执行了一次,你可以试着在while循环中放一个计数器吗,我认为整个文件都是作为一行字符串读取的,while循环会重复一次,因为换行符无法通过。我现在遇到了相同的问题。但我使用android客户端上载文本文件。如何解决此问题?我现在遇到了相同的问题。但我使用android客户端上载文本文件。如何解决此问题?