Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带头参数的Spring集成Http OutboundGateway输出_Java_Spring_Spring Integration - Fatal编程技术网

Java 带头参数的Spring集成Http OutboundGateway输出

Java 带头参数的Spring集成Http OutboundGateway输出,java,spring,spring-integration,Java,Spring,Spring Integration,我正在尝试对远程REST端点进行PUT,我需要为其提供凭据作为标头的一部分,但迄今为止没有成功 方法1: @Bean public IntegrationFlow outboundGateway() { return flow -> flow .transform(transformer) .enrichHeaders(h -> h.header("x-api-key", "secret1

我正在尝试对远程REST端点进行PUT,我需要为其提供凭据作为标头的一部分,但迄今为止没有成功

方法1:

    @Bean
    public IntegrationFlow outboundGateway() {
        return flow -> flow
                .transform(transformer)
                .enrichHeaders(h -> h.header("x-api-key", "secret123")
                                     .header("contentType", MediaType.APPLICATION_JSON))
                .handle(Http.outboundGateway("https://remote-service.com/car")
                        .mappedRequestHeaders()
                .httpMethod(HttpMethod.PUT)
                .expectedResponseType(String.class))
                .log();
    }
我一直得到403分

我通过RestTemplate轻松实现了这一点:

HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(getHeaders());
restTemplate.put("https://remote-service.com/car", request);
...

    private HttpHeaders getHeaders() {
        HttpHeaders headers = new HttpHeaders();
        headers.add("x-api-key", "secret123");
        return headers;
    }
HttpEntity请求=新的HttpEntity(getHeaders());
restTemplate.put(“https://remote-service.com/car“,请求);
...
私有HttpHeaders getHeaders(){
HttpHeaders=新的HttpHeaders();
标题。添加(“x-api-key”、“secret123”);
返回标题;
}
如何使用Http OutboundGateway发送此x-api-key头及其值


谢谢。

x-api-key不是标准的http头,因此您需要将其传输:

 .mappedRequestHeaders(*)
对于您的
Http.outboundGateway()

有关更多信息,请参阅文档: