javax.ws.rs.container.ContainerRequestContext.getAcceptableMediaTypes()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(116)

本文整理了Java中javax.ws.rs.container.ContainerRequestContext.getAcceptableMediaTypes()方法的一些代码示例,展示了ContainerRequestContext.getAcceptableMediaTypes()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ContainerRequestContext.getAcceptableMediaTypes()方法的具体详情如下:
包路径:javax.ws.rs.container.ContainerRequestContext
类名称:ContainerRequestContext
方法名:getAcceptableMediaTypes

ContainerRequestContext.getAcceptableMediaTypes介绍

[英]Get a list of media types that are acceptable for the response.
[中]获取响应可接受的媒体类型列表。

代码示例

代码示例来源:origin: jersey/jersey

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.get().getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: jersey/jersey

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.get().getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    final Response.StatusType responseStatus = responseContext.getStatusInfo();
    final String requestPath = requestContext.getUriInfo().getAbsolutePath().getPath();
    final List<MediaType> acceptableMediaTypes = requestContext.getAcceptableMediaTypes();
    final boolean acceptsHtml = acceptableMediaTypes.stream()
        .anyMatch(mediaType -> mediaType.isCompatible(MediaType.TEXT_HTML_TYPE) || mediaType.isCompatible(MediaType.APPLICATION_XHTML_XML_TYPE));
    final boolean isGetRequest = "get".equalsIgnoreCase(requestContext.getMethod());

    if (isGetRequest
        && responseStatus == Response.Status.NOT_FOUND
        && acceptsHtml
        && !requestPath.startsWith("/" + HttpConfiguration.PATH_API)) {
      final String entity = indexHtmlGenerator.get(requestContext.getHeaders());
      responseContext.setStatusInfo(Response.Status.OK);
      responseContext.setEntity(entity, new Annotation[0], MediaType.TEXT_HTML_TYPE);

      responseContext.getHeaders().putSingle("X-UA-Compatible", "IE=edge");
    }
  }
}

代码示例来源:origin: org.glassfish.jersey.core/jersey-server

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.get().getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: resteasy/Resteasy

private void handleGET(ContainerRequestContext request, String key)
 List<MediaType> acceptableMediaTypes = request.getAcceptableMediaTypes();
 if (acceptableMediaTypes != null && acceptableMediaTypes.size() > 0)

代码示例来源:origin: stackoverflow.com

@Named
public class TestFilter implements ContainerRequestFilter {
  private boolean globalError = true;

  public void filter(final ContainerRequestContext requestContext) throws IOException {
    if (globalError) {
      MediaType mediaType = requestContext.getAcceptableMediaTypes().size() > 0 ? requestContext.getAcceptableMediaTypes().get(0) : null;
      throw new WebApplicationException(Response.status(422).type(mediaType).entity(new TestEntity()).build());
    }
  } 
}

代码示例来源:origin: org.mycore/mycore-restapi

private static boolean doNotWWWAuthenticate(ContainerRequestContext requestContext) {
  return "XMLHttpRequest".equals(requestContext.getHeaderString("X-Requested-With")) ||
    requestContext.getAcceptableMediaTypes()
      .stream()
      .findFirst()
      .filter(m -> "image".equals(m.getType()))
      .isPresent();
}

代码示例来源:origin: com.yahoo.fili/fili-core

@Override public List<MediaType> getAcceptableMediaTypes() { return request.getAcceptableMediaTypes(); }
@Override public List<Locale> getAcceptableLanguages() { return request.getAcceptableLanguages(); }

代码示例来源:origin: yahoo/fili

@Override public List<MediaType> getAcceptableMediaTypes() { return request.getAcceptableMediaTypes(); }
@Override public List<Locale> getAcceptableLanguages() { return request.getAcceptableLanguages(); }

代码示例来源:origin: org.glassfish.jersey.bundles/jaxrs-ri

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.get().getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: com.eclipsesource.jaxrs/jersey-all

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: hstaudacher/osgi-jax-rs-connector

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: hstaudacher/osgi-jax-rs-connector

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final Set<String> allowedMethods = ModelProcessorUtil.getAllowedMethods(
        (extendedUriInfo.getMatchedRuntimeResources().get(0)));
    return Response.ok()
        .allow(allowedMethods)
        .header(HttpHeaders.CONTENT_LENGTH, "0")
        .type(containerRequestContext.getAcceptableMediaTypes().get(0))
        .build();
  }
}

代码示例来源:origin: icode/ameba

@Override
  public Response apply(ContainerRequestContext containerRequestContext) {
    final MediaType foundMediaType = getSupportProduceMediaType(containerRequestContext);
    if (foundMediaType != null) {
      return generateRespBuilder(containerRequestContext, extendedUriInfo, foundMediaType, generators).build();
    }
    return generateRespBuilder(extendedUriInfo, containerRequestContext.getAcceptableMediaTypes().get(0))
        .header(HttpHeaders.CONTENT_LENGTH, 0)
        .build();
  }
}

代码示例来源:origin: org.apache.geronimo/geronimo-openapi-impl

@Override
public void filter(final ContainerRequestContext rc) {
  if (!HttpMethod.GET.equals(rc.getRequest().getMethod())) {
    return;
  }
  final String path = rc.getUriInfo().getPath();
  if ("openapi".equals(path)) {
    final List<MediaType> mediaTypes = rc.getAcceptableMediaTypes();
    rc.abortWith(Response.ok(openApi).type(selectType(mediaTypes)).build());
  }
  if ("openapi.json".equals(path)) {
    rc.abortWith(Response.ok(openApi).type(APPLICATION_JSON_TYPE).build());
  }
  if ("openapi.yml".equals(path) || "openapi.yaml".equals(path)) {
    rc.abortWith(Response.ok(openApi).type("text/vnd.yaml").build());
  }
}

代码示例来源:origin: stackoverflow.com

import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.List;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.Provider;

@Provider
public class EntityResponseFilter implements ContainerResponseFilter {

  @Override
  public void filter( ContainerRequestContext reqc , ContainerResponseContext resc ) throws IOException {
    MediaType mediaType = this.getMediaTypeFromExtentionOrHeader(); // TODO
    List<MediaType> mediaTypes = reqc.getAcceptableMediaTypes();
    if( mediaTypes.contains(mediaType) ) {   
      resc.setEntity( resc.getEntity(), new Annotation[0], mediaType );
    }
    // ...
  }
}

代码示例来源:origin: icode/ameba

/**
 * {@inheritDoc}
 */
@Override
public boolean isWriteable(final Class<?> type, final Type genericType, final Annotation[] annotations,
              final MediaType mediaType) {
  String[] p;
  return !dataViewDisabled
      && -1 != ListUtils.indexOf(requestProvider.get().getAcceptableMediaTypes(),
      this::isSupportMediaType)
      && ((p = TemplateHelper.getProduces(annotations)) == null
      || -1 != ArrayUtils.indexOf(p,
      (Predicate<String>) stringType -> {
        if (stringType.equals(MediaType.WILDCARD)) return true;
        MediaType mediaType1 = MediaType.valueOf(stringType);
        return isSupportMediaType(mediaType1);
      }));
}

代码示例来源:origin: io.swagger/swagger-inflector

public RequestContext(ContainerRequestContext context, HttpServletRequest request, HttpServletResponse response) {
  this.context = context;
  if(context != null) {
    headers(context.getHeaders());
    mediaType(context.getMediaType());
    acceptableMediaTypes(context.getAcceptableMediaTypes());
  }
  this.request = request;
  if (request != null) {
    this.remoteAddr = request.getRemoteAddr();
  }
  this.response = response;
}

代码示例来源:origin: swagger-api/swagger-inflector

public RequestContext(ContainerRequestContext context, HttpServletRequest request, HttpServletResponse response) {
  this.context = context;
  if(context != null) {
    headers(context.getHeaders());
    mediaType(context.getMediaType());
    acceptableMediaTypes(context.getAcceptableMediaTypes());
  }
  this.request = request;
  if (request != null) {
    this.remoteAddr = request.getRemoteAddr();
  }
  this.response = response;
}

代码示例来源:origin: org.graylog2/graylog2-server

@Override
  public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    final Response.StatusType responseStatus = responseContext.getStatusInfo();
    final String requestPath = requestContext.getUriInfo().getAbsolutePath().getPath();
    final List<MediaType> acceptableMediaTypes = requestContext.getAcceptableMediaTypes();
    final boolean acceptsHtml = acceptableMediaTypes.stream()
        .anyMatch(mediaType -> mediaType.isCompatible(MediaType.TEXT_HTML_TYPE) || mediaType.isCompatible(MediaType.APPLICATION_XHTML_XML_TYPE));
    final boolean isGetRequest = "get".equalsIgnoreCase(requestContext.getMethod());

    if (isGetRequest
        && responseStatus == Response.Status.NOT_FOUND
        && acceptsHtml
        && requestPath.startsWith(webAppPrefix)) {
      final String entity = indexHtmlGenerator.get();
      responseContext.setStatusInfo(Response.Status.OK);
      responseContext.setEntity(entity, new Annotation[0], MediaType.TEXT_HTML_TYPE);

      responseContext.getHeaders().putSingle("X-UA-Compatible", "IE=edge");
    }
  }
}

相关文章

微信公众号

最新文章

更多