类org.springframework.http.client.support.HttpRequestWrapper源码实例Demo

下面列出了怎么用org.springframework.http.client.support.HttpRequestWrapper的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: wingtips   文件: SpringHttpClientTagAdapterTest.java
@DataProvider(value = {
    "true   |   spring.asyncresttemplate",
    "false  |   spring.resttemplate"
}, splitBy = "\\|")
@Test
public void getSpanHandlerTagValue_works_as_expected_when_request_is_an_HttpRequestWrapper(
    boolean wrappedRequestIsAsyncClientHttpRequest, String expectedResult
) {
    // given
    HttpRequestWrapper request = mock(HttpRequestWrapper.class);
    HttpRequest wrappedRequest = (wrappedRequestIsAsyncClientHttpRequest)
                                 ? mock(AsyncClientHttpRequest.class)
                                 : mock(HttpRequest.class);

    doReturn(wrappedRequest).when(request).getRequest();

    // when
    String result = implSpy.getSpanHandlerTagValue(request, responseMock);

    // then
    assertThat(result).isEqualTo(expectedResult);
}
 
@Override
public HttpRequest transformRequest(HttpRequest request, ServiceInstance instance) {
	Map<String, String> metadata = instance.getMetadata();
	if (metadata.containsKey(CF_APP_GUID) && metadata.containsKey(CF_INSTANCE_INDEX)) {
		final String headerValue = String.format("%s:%s", metadata.get(CF_APP_GUID), metadata.get(CF_INSTANCE_INDEX));
		// request.getHeaders might be immutable, so return a wrapper
		return new HttpRequestWrapper(request) {
			@Override
			public HttpHeaders getHeaders() {
				HttpHeaders headers = new HttpHeaders();
				headers.putAll(super.getHeaders());
				headers.add(SURGICAL_ROUTING_HEADER, headerValue);
				return headers;
			}
		};
	}
	return request;
}
 
@Override
public HttpRequest transformRequest(HttpRequest request, ServiceInstance instance) {
	Map<String, String> metadata = instance.getMetadata();
	if (metadata.containsKey(CF_APP_GUID) && metadata.containsKey(CF_INSTANCE_INDEX)) {
		final String headerValue = String.format("%s:%s", metadata.get(CF_APP_GUID),
				metadata.get(CF_INSTANCE_INDEX));
		// request.getHeaders might be immutable, so return a wrapper
		return new HttpRequestWrapper(request) {
			@Override
			public HttpHeaders getHeaders() {
				HttpHeaders headers = new HttpHeaders();
				headers.putAll(super.getHeaders());
				headers.add(SURGICAL_ROUTING_HEADER, headerValue);
				return headers;
			}
		};
	}
	return request;
}
 
源代码4 项目: dts   文件: DtsRemoteInterceptor.java
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
    throws IOException {
    HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);
    Map<String, String> contexts = SpringCloudDtsContext.getContext().getAttachments();
    for (Map.Entry<String, String> entry : contexts.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();
        requestWrapper.getHeaders().set(CONTEXT_HEADER_PARENT + key, value);
    }
    return execution.execute(requestWrapper, body);
}
 
public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes, ClientHttpRequestExecution clientHttpRequestExecution) throws IOException {
    HttpRequestWrapper requestWrapper = new HttpRequestWrapper(httpRequest);
    String xid = RootContext.getXID();
    if (StringUtils.isNotEmpty(xid)) {
        requestWrapper.getHeaders().add(RootContext.KEY_XID, xid);
    }

    return clientHttpRequestExecution.execute(requestWrapper, bytes);
}
 
/**
 * Intercept client http response.
 *
 * @param request   the request
 * @param body      the body
 * @param execution the execution
 *
 * @return the client http response
 *
 * @throws IOException the io exception
 */
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body,
                                    ClientHttpRequestExecution execution) throws IOException {
	HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);

	String header = StringUtils.collectionToDelimitedString(
			CoreHeaderInterceptor.LABEL.get(),
			CoreHeaderInterceptor.HEADER_LABEL_SPLIT);
	log.info("header={} ", header);
	requestWrapper.getHeaders().add(CoreHeaderInterceptor.HEADER_LABEL, header);

	return execution.execute(requestWrapper, body);
}
 
@Override
public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes,
		ClientHttpRequestExecution clientHttpRequestExecution) throws IOException {
	HttpRequestWrapper requestWrapper = new HttpRequestWrapper(httpRequest);

	String xid = RootContext.getXID();

	if (!StringUtils.isEmpty(xid)) {
		requestWrapper.getHeaders().add(RootContext.KEY_XID, xid);
	}
	return clientHttpRequestExecution.execute(requestWrapper, bytes);
}
 
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
		throws IOException {
	HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);

	HttpHeaders headers = requestWrapper.getHeaders();
	headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
	headers.setContentType(MediaType.APPLICATION_JSON);

	return execution.execute(requestWrapper, body);
}
 
/**
 * Add an OAuth2 bearer token header to each request.
 *
 * {@inheritDoc}
 */
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
		throws IOException {
	HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);

	HttpHeaders headers = requestWrapper.getHeaders();
	headers.setBearerAuth(authorizeClient().getAccessToken().getTokenValue());

	return execution.execute(requestWrapper, body);
}
 
源代码10 项目: wingtips   文件: SpringHttpClientTagAdapter.java
@Override
public @Nullable String getSpanHandlerTagValue(@Nullable HttpRequest request, @Nullable ClientHttpResponse response) {
    if (request instanceof HttpRequestWrapper) {
        request = ((HttpRequestWrapper) request).getRequest();
    }

    if (request instanceof AsyncClientHttpRequest) {
        return "spring.asyncresttemplate";
    }

    return "spring.resttemplate";
}
 
源代码11 项目: bowman   文件: JsonClientHttpRequestInterceptor.java
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
		throws IOException {
	HttpRequestWrapper wrapped = new HttpRequestWrapper(request);
	wrapped.getHeaders().put("Content-Type", asList(MediaTypes.HAL_JSON_VALUE));
	wrapped.getHeaders().put("Accept", asList(MediaTypes.HAL_JSON_VALUE));
	return execution.execute(wrapped, body);
}
 
源代码12 项目: jbrotli   文件: HelloBrotliHttpControllerTest.java
private static List<ClientHttpRequestInterceptor> createAcceptBrotliEncodingInterceptor() {
  return singletonList((ClientHttpRequestInterceptor) new ClientHttpRequestInterceptor() {
    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
      HttpRequest wrapper = new HttpRequestWrapper(request);
      wrapper.getHeaders().set("Accept-Encoding", BROTLI_HTTP_CONTENT_CODING);
      return execution.execute(wrapper, body);
    }
  });
}
 
 类所在包
 同包方法