本文整理汇总了Java中javax.ws.rs.core.HttpHeaders.IF_NONE_MATCH属性的典型用法代码示例。如果您正苦于以下问题:Java HttpHeaders.IF_NONE_MATCH属性的具体用法?Java HttpHeaders.IF_NONE_MATCH怎么用?Java HttpHeaders.IF_NONE_MATCH使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类javax.ws.rs.core.HttpHeaders
的用法示例。
在下文中一共展示了HttpHeaders.IF_NONE_MATCH属性的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: get
/**
* process GET Method and retrieve the file content.
* @param ifNoneMatch If-None-Match Header
* @return JAX-RS response object
*/
@GET
public Response get(
@HeaderParam(HttpHeaders.IF_NONE_MATCH) final String ifNoneMatch
) {
// Check exist
checkFileExists();
// Access Control
davRsCmp.getParent().checkAccessContext(davRsCmp.getAccessContext(), CellPrivilege.ROOT);
ResponseBuilder rb = davRsCmp.get(ifNoneMatch, null);
return rb.build();
}
示例2: getLogFile
/**
* イベントログファイルを取得する.
* @param ifNoneMatch If-None-Matchヘッダ
* @param logCollection Collection名
* @param fileName fileName
* @return JAXRS Response
*/
@Path("{logCollection}/{filename}")
@GET
public final Response getLogFile(@HeaderParam(HttpHeaders.IF_NONE_MATCH) final String ifNoneMatch,
@PathParam("logCollection") final String logCollection,
@PathParam("filename") final String fileName) {
// アクセス制御
this.davRsCmp.checkAccessContext(this.davRsCmp.getAccessContext(), CellPrivilege.LOG_READ);
// イベントログのCollection名のチェック
if (!isValidLogCollection(logCollection)) {
throw PersoniumCoreException.Dav.RESOURCE_NOT_FOUND.params(logCollection);
}
// ファイル名がdefault.log以外の場合は404を返却
if (!isValidLogFile(logCollection, fileName)) {
throw PersoniumCoreException.Dav.RESOURCE_NOT_FOUND.params(fileName);
}
String cellId = davRsCmp.getCell().getId();
String owner = davRsCmp.getCell().getOwner();
// ログファイルのパスを取得
StringBuilder logFileName = EventUtils.getEventLogDir(cellId, owner);
logFileName.append(logCollection);
logFileName.append(File.separator);
logFileName.append(fileName);
return getLog(logCollection, logFileName.toString());
}
示例3: get
/**
* process GET Method and retrieve the file content.
* @param ifNoneMatch If-None-Match Header
* @param rangeHeaderField Range header
* @return JAX-RS response object
*/
@GET
public Response get(
@HeaderParam(HttpHeaders.IF_NONE_MATCH) final String ifNoneMatch,
@HeaderParam("Range") final String rangeHeaderField
) {
// Access Control
this.davRsCmp.checkAccessContext(this.davRsCmp.getAccessContext(), BoxPrivilege.READ);
ResponseBuilder rb = this.davRsCmp.get(ifNoneMatch, rangeHeaderField);
return rb.build();
}
示例4: get
/**
* GETメソッドの処理.
* @param uriInfo UriInfo
* @param accept Accept ヘッダ
* @param ifNoneMatch If-None-Match ヘッダ
* @param format $format パラメタ
* @param expand $expand パラメタ
* @param select $select パラメタ
* @return JAX-RSResponse
*/
@GET
public Response get(
@Context final UriInfo uriInfo,
@HeaderParam(HttpHeaders.ACCEPT) String accept,
@HeaderParam(HttpHeaders.IF_NONE_MATCH) String ifNoneMatch,
@QueryParam("$format") String format,
@QueryParam("$expand") String expand,
@QueryParam("$select") String select) {
// アクセス制御
this.odataResource.checkAccessContext(this.accessContext,
this.odataResource.getNecessaryReadPrivilege(getEntitySetName()));
UriInfo resUriInfo = PersoniumCoreUtils.createUriInfo(uriInfo, 1);
// $formatとAcceptヘッダの値から出力形式を決定
MediaType contentType = decideOutputFormat(accept, format);
String outputFormat = FORMAT_JSON;
if (MediaType.APPLICATION_ATOM_XML_TYPE.equals(contentType)) {
outputFormat = FORMAT_ATOM;
}
// Entityの取得をProducerに依頼
EntityResponse entityResp = getEntity(expand, select, resUriInfo);
String respStr = renderEntityResponse(resUriInfo, entityResp, outputFormat, null);
// 制御コードのエスケープ処理
respStr = escapeResponsebody(respStr);
ResponseBuilder rb = Response.ok().type(contentType);
rb.header(ODataConstants.Headers.DATA_SERVICE_VERSION, ODataVersion.V2.asString);
// ETagを正式実装するときに、返却する必要がある
OEntity entity = entityResp.getEntity();
String etag = null;
// 基本的にこのIF文に入る。
if (entity instanceof OEntityWrapper) {
OEntityWrapper oew = (OEntityWrapper) entity;
// エンティティごとのアクセス可否判断
this.odataResource.checkAccessContextPerEntity(this.accessContext, oew);
etag = oew.getEtag();
// 基本的にこのIF文に入る。
if (etag != null) {
// If-None-Matchヘッダの指定があるとき
if (ifNoneMatch != null && ifNoneMatch.equals(ODataResource.renderEtagHeader(etag))) {
return Response.notModified().build();
}
// ETagヘッダの付与
rb.header(HttpHeaders.ETAG, ODataResource.renderEtagHeader(etag));
}
}
return rb.entity(respStr).build();
}