Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 使用WebServiceTemplate设置自定义标头_Java_Spring_Spring Boot - Fatal编程技术网

Java 使用WebServiceTemplate设置自定义标头

Java 使用WebServiceTemplate设置自定义标头,java,spring,spring-boot,Java,Spring,Spring Boot,我在spring boot中使用WebServiceTemplate,并使用MarshallSendReceive调用目标服务 如何在请求中设置自定义HTTP头?创建消息后,需要使用WebServiceMessageCallback修改消息 webServiceTemplate.marshalSendAndReceive(o, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessa

我在spring boot中使用WebServiceTemplate,并使用MarshallSendReceive调用目标服务


如何在请求中设置自定义HTTP头?

创建消息后,需要使用WebServiceMessageCallback修改消息

 webServiceTemplate.marshalSendAndReceive(o, new WebServiceMessageCallback() {

        public void doWithMessage(WebServiceMessage message) {
            try {
                SoapMessage soapMessage = (SoapMessage)message;
                SoapHeader header = soapMessage.getSoapHeader();
                StringSource headerSource = new StringSource("<credentials xmlns=\"http://google.com/profile\">\n +
                        <token>"+customToken"+</token>\n +
                        </credentials>");
                Transformer transformer = TransformerFactory.newInstance().newTransformer();
                transformer.transform(headerSource, header.getResult());
            } catch (Exception e) {
                // something went wrong
            }
        }
    });
webServiceTemplate.marshalSendAndReceive(o,新的WebServiceMessageCallback(){
公共无效doWithMessage(WebServiceMessage消息){
试一试{
SoapMessage SoapMessage=(SoapMessage)消息;
SoapHeader=soapMessage.getSoapHeader();
StringSource headerSource=新StringSource(“\n+
“+customToken”+\n+
");
Transformer Transformer=TransformerFactory.newInstance().newTransformer();
transform(headerSource,header.getResult());
}捕获(例外e){
//出了点问题
}
}
});

所以,本质上,我们正在将web服务消息转换为SoapMessage以修改标头

可能重复的谢谢!但我需要设置HTTP自定义头而不是SOAP头,因为我的请求是REST/JSON。