小编Yog*_*are的帖子

Spring-boot Resttemplate response.body 为空,而拦截器清楚地显示了正文

使用 Spring-boot 1.5.10.RELEASE,我得到 response.body 为空。

这是我如何使用 RestTemplate

RestTemplate restTemplate = new RestTemplate();
    List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
    interceptors.add(new LoggingRequestInterceptor());
    restTemplate.setInterceptors(interceptors);

    String url = "http://someurl/Commands";

    MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
    params.add("cmd", "{\"operation\":\"getSomeDetails\"}}");

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(params, headers);

    ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);

    System.out.println("This is always null: " + response.getBody());
Run Code Online (Sandbox Code Playgroud)

虽然上面的程序总是打印 null,但下面的拦截器打印有效的响应正文

public class LoggingRequestInterceptor implements ClientHttpRequestInterceptor {

final static Logger log = LoggerFactory.getLogger(LoggingRequestInterceptor.class);

@Override
public ClientHttpResponse intercept(final HttpRequest request, final byte[] …
Run Code Online (Sandbox Code Playgroud)

resttemplate spring-boot

6
推荐指数
2
解决办法
7257
查看次数

CXF单元测试

我正在使用Apache CXF 3.0.0并且几乎没有使用JAX-RS配置定义的服务.我们使用Spring Framework进行分层配置.这些服务的这些输入/输出是JSON字符串.

我正在寻找一个Junit测试用例的工作示例来验证我的服务.还可以在Maven Build中配置Test.

我提到了https://cwiki.apache.org/confluence/display/CXF20DOC/JAXRS+Testing

是推荐的做法吗?尽管如此,我试图设置但无法成功,无法理解哪里去了什么.

junit cxf jax-rs

5
推荐指数
1
解决办法
7313
查看次数

标签 统计

cxf ×1

jax-rs ×1

junit ×1

resttemplate ×1

spring-boot ×1