如何在响应中获取内容位置?

时间:2014-07-15 12:58:17

标签: java mongodb post jersey

我正在使用java REST服务在Mongodb中使用 POST 方法存储数据,作为响应,它将返回一个 id ,它将用于检索数据。 我想在contentLocation获取身份证,我该怎么办? 以下是我需要POST

contentLocation方法
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
        @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) throws FileNotFoundException, URISyntaxException {
    filePath = SERVER_UPLOAD_LOCATION_FOLDER + fileDetail.getFileName();

    // save the file to the server
    Mongodb_storage location =new Mongodb_storage();
    location.store_in_db(uploadedInputStream,
            FilenameUtils.getExtension(filePath));
    String output = "File saved to server location " + filePath;
    return Response.status(200).contentLocation(new URI("/53c5ac66796029898a5197d4")).entity(output).build();//here I have used content location
}

2 个答案:

答案 0 :(得分:0)

只需在响应标题中设置内容位置,如

 response.addHeader("Content-Location", your_id);

答案 1 :(得分:0)

HTTP Content-Location标头用于返回数据的备用位置。您可能需要的是在创建新资源时使用的Location标头。

  1. 首先构建包含给定ID的URI,并用于检索创建的数据。您可以使用例如UriBuilder类来构建这样的URI。

  2. 然后返回包含您的URI的Content-Location标头的HTTP 200 OK响应

    Response.ok().contentLocation(locationUri)).entity(entity).build();
    
  3. 或者返回带有Location标头的HTTP 201 Created响应,其中包含URI

    Response.created(locationUri).build();