feign.RequestTemplate.headers()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.6k)|赞(0)|评价(0)|浏览(1085)

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

RequestTemplate.headers介绍

[英]Returns an immutable copy of the current headers.
[中]返回当前标题的不可变副本。

代码示例

代码示例来源:origin: liuyangming/ByteTCC

public void apply(feign.RequestTemplate template) {
  final SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
  CompensableBeanFactory beanFactory = beanRegistry.getBeanFactory();
  CompensableManager compensableManager = beanFactory.getCompensableManager();
  CompensableTransaction compensable = compensableManager.getCompensableTransactionQuietly();
  if (compensable == null) {
    return;
  }
  try {
    TransactionContext transactionContext = compensable.getTransactionContext();
    byte[] byteArray = SerializeUtils.serializeObject(transactionContext);
    String transactionText = Base64.getEncoder().encodeToString(byteArray);
    Map<String, Collection<String>> headers = template.headers();
    if (headers.containsKey(HEADER_TRANCACTION_KEY) == false) {
      template.header(HEADER_TRANCACTION_KEY, transactionText);
    }
    if (headers.containsKey(HEADER_PROPAGATION_KEY) == false) {
      template.header(HEADER_PROPAGATION_KEY, identifier);
    }
  } catch (IOException ex) {
    throw new RuntimeException("Error occurred while preparing the transaction context!", ex);
  }
}

代码示例来源:origin: com.palantir.remoting3/jaxrs-clients

@Override
  public void apply(RequestTemplate template) {
    if (template.headers().containsKey(OkhttpTraceInterceptor.PATH_TEMPLATE_HEADER)) {
      Collection<String> rewrittenHeaders = template.headers().get(OkhttpTraceInterceptor.PATH_TEMPLATE_HEADER)
          .stream()
          .map(headerValue ->
              headerValue.replace(PathTemplateHeaderEnrichmentContract.OPEN_BRACE_REPLACEMENT, '{')
                  .replace(PathTemplateHeaderEnrichmentContract.CLOSE_BRACE_REPLACEMENT, '}'))
          .collect(Collectors.toList());
      Map<String, Collection<String>> headers = new HashMap<>(template.headers());
      headers.put(OkhttpTraceInterceptor.PATH_TEMPLATE_HEADER, rewrittenHeaders);
      template.headers(headers);
    }
  }
}

代码示例来源:origin: spring-cloud/spring-cloud-openfeign

/**
 * Adds the header if it wasn't yet specified.
 *
 * @param requestTemplate the request
 * @param name            the header name
 * @param values          the header values
 */
protected void addHeader(RequestTemplate requestTemplate, String name, String... values) {
  if (!requestTemplate.headers().containsKey(name)) {
    requestTemplate.header(name, values);
  }
}

代码示例来源:origin: org.springframework.cloud/spring-cloud-openfeign-core

/**
 * Adds the header if it wasn't yet specified.
 *
 * @param requestTemplate the request
 * @param name            the header name
 * @param values          the header values
 */
protected void addHeader(RequestTemplate requestTemplate, String name, String... values) {
  if (!requestTemplate.headers().containsKey(name)) {
    requestTemplate.header(name, values);
  }
}

代码示例来源:origin: ppdai-incubator/raptor

public FeignRequestOutputMessage(RequestTemplate request) {
  this.httpHeaders = HttpHeadersUtils.getHttpHeaders(request.headers());
  this.buf = new ByteArrayOutputStream();
}

代码示例来源:origin: org.springframework.cloud/spring-cloud-openfeign-core

private FeignOutputMessage(RequestTemplate request) {
  httpHeaders = getHttpHeaders(request.headers());
}

代码示例来源:origin: spring-cloud/spring-cloud-openfeign

private FeignOutputMessage(RequestTemplate request) {
  httpHeaders = getHttpHeaders(request.headers());
}

代码示例来源:origin: com.mesosphere/marathon-client

@Override
  public void apply(RequestTemplate template) {
    Collection<String> apiSources = template.headers().get(HeaderUtils.API_SOURCE_HEADER);

    if (apiSources == null || apiSources.isEmpty()) {
      return;
    }

    if (apiSources.iterator().next().equals(HeaderUtils.MARATHON_API_SOURCE)) {
      template.insert(0, "/marathon");
    }

    template.header(HeaderUtils.API_SOURCE_HEADER);
  }
}

代码示例来源:origin: org.springframework.cloud/spring-cloud-openfeign-core

/**
 * Returns whether the request requires GZIP compression.
 *
 * @param template the request template
 * @return true if request requires compression, false otherwise
 */
private boolean requiresCompression(RequestTemplate template) {
  final Map<String, Collection<String>> headers = template.headers();
  return matchesMimeType(headers.get(HttpEncoding.CONTENT_TYPE))
      && contentLengthExceedThreshold(headers.get(HttpEncoding.CONTENT_LENGTH));
}

代码示例来源:origin: spring-cloud/spring-cloud-openfeign

/**
 * Returns whether the request requires GZIP compression.
 *
 * @param template the request template
 * @return true if request requires compression, false otherwise
 */
private boolean requiresCompression(RequestTemplate template) {
  final Map<String, Collection<String>> headers = template.headers();
  return matchesMimeType(headers.get(HttpEncoding.CONTENT_TYPE))
      && contentLengthExceedThreshold(headers.get(HttpEncoding.CONTENT_LENGTH));
}

代码示例来源:origin: com.cerner.marathon/marathon-client

@Override
  public void apply(RequestTemplate template) {
    Collection<String> apiSources = template.headers().get(HeaderUtils.API_SOURCE_HEADER);

    if (apiSources == null || apiSources.isEmpty()) {
      return;
    }

    if (apiSources.iterator().next().equals(HeaderUtils.MARATHON_API_SOURCE)) {
      template.insert(0, marathonPath);
    } else if (apiSources.iterator().next().equals(HeaderUtils.METRONOME_API_SOURCE)) {
      template.insert(0, metronomePath);
    }

    template.header(HeaderUtils.API_SOURCE_HEADER);
  }
}

代码示例来源:origin: com.netflix.feign/feign-core

@Override
protected void processAnnotationOnClass(MethodMetadata data, Class<?> targetType) {
 if (targetType.isAnnotationPresent(Headers.class)) {
  String[] headersOnType = targetType.getAnnotation(Headers.class).value();
  checkState(headersOnType.length > 0, "Headers annotation was empty on type %s.",
        targetType.getName());
  Map<String, Collection<String>> headers = toMap(headersOnType);
  headers.putAll(data.template().headers());
  data.template().headers(null); // to clear
  data.template().headers(headers);
 }
}

代码示例来源:origin: io.github.reactivefeign/feign-reactive-core

protected MultiValueMap<String, String> headers(Object[] argv,
    Map<String, ?> substitutionsMap) {
  MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
  methodMetadata.template().headers().keySet()
      .forEach(headerName -> headers.addAll(headerName,
          headerExpanders.get(headerName).stream()
              .map(expander -> expander.apply(substitutionsMap))
              .collect(toList())));
  if (methodMetadata.headerMapIndex() != null) {
    ((Map<String, String>) argv[methodMetadata.headerMapIndex()])
        .forEach(headers::add);
  }
  return headers;
}

代码示例来源:origin: com.palantir.remoting/feign-config

@Override
  public void apply(RequestTemplate template) {
    if (!HeaderAccessUtils.caseInsensitiveContains(template.headers(), HttpHeaders.USER_AGENT)) {
      template.header(HttpHeaders.USER_AGENT, userAgent);
    }
  }
}

代码示例来源:origin: palantir/conjure-java-runtime

@Test
  public void doesNotUseDelegateWhenContentTypeHeaderHasArbitraryCase() {
    headers.put("Content-TYPE", Arrays.asList(MediaType.TEXT_PLAIN));
    requestTemplate.headers(headers);
    textDelegateEncoder.encode(null, null, requestTemplate);
    verifyZeroInteractions(delegate);
  }
}

代码示例来源:origin: palantir/conjure-java-runtime

@Test
public void doesNotUseDelegateWhenContentTypeIsTextPlain() {
  headers.put(HttpHeaders.CONTENT_TYPE, Arrays.asList(MediaType.TEXT_PLAIN));
  requestTemplate.headers(headers);
  textDelegateEncoder.encode(null, null, requestTemplate);
  verifyZeroInteractions(delegate);
}

代码示例来源:origin: palantir/conjure-java-runtime

@Test
public void usesDelegateWhenContentTypeIsNotTextPlain() {
  headers.put(HttpHeaders.CONTENT_TYPE, Arrays.asList(MediaType.APPLICATION_JSON));
  requestTemplate.headers(headers);
  textDelegateEncoder.encode(null, null, requestTemplate);
  verify(delegate).encode(null, null, requestTemplate);
}

代码示例来源:origin: palantir/conjure-java-runtime

@Test
public void usesDelegateWhenHeaderIsAbsent() {
  requestTemplate.headers(headers);
  textDelegateEncoder.encode(null, null, requestTemplate);
  verify(delegate).encode(null, null, requestTemplate);
}

代码示例来源:origin: com.netflix.feign/feign-ribbon

Request toRequest() {
 return new RequestTemplate()
   .method(request.method())
   .append(getUri().toASCIIString())
   .headers(request.headers())
   .body(request.body(), request.charset())
   .request();
}

代码示例来源:origin: org.springframework.cloud/spring-cloud-openfeign-core

@Override
public boolean processArgument(AnnotatedParameterContext context, Annotation annotation, Method method) {
  String name = ANNOTATION.cast(annotation).value();
  checkState(emptyToNull(name) != null,
      "PathVariable annotation was empty on param %s.", context.getParameterIndex());
  context.setParameterName(name);
  MethodMetadata data = context.getMethodMetadata();
  String varName = '{' + name + '}';
  if (!data.template().url().contains(varName)
      && !searchMapValues(data.template().queries(), varName)
      && !searchMapValues(data.template().headers(), varName)) {
    data.formParams().add(name);
  }
  return true;
}

相关文章