本文整理了Java中feign.RequestTemplate.headers
方法的一些代码示例,展示了RequestTemplate.headers
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RequestTemplate.headers
方法的具体详情如下:
包路径:feign.RequestTemplate
类名称: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;
}
内容来源于网络,如有侵权,请联系作者删除!