<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Answers to: How to set additional HTTP Header in SOAP WebService Request</title><link>https://answers.axonivy.com/questions/3746/how-to-set-additional-http-header-in-soap-webservice-request</link><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;How can I set an additional HTTP header in a SOAP web service request. For example to send a OAuth2 token to the web service?&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;</description><atom:link href="https://answers.axonivy.com/questions/3746/how-to-set-additional-http-header-in-soap-webservice-request" rel="self"></atom:link><language>en</language><lastBuildDate>Mon, 25 Mar 2019 15:58:45 -0400</lastBuildDate><item><title>Answer by Reto Weiss</title><link>https://answers.axonivy.com/questions/3746/how-to-set-additional-http-header-in-soap-webservice-request/3747</link><description>&lt;p&gt;Hi &lt;/p&gt;
&lt;p&gt;With CXF you can write your own feature class that sets the additional header:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;package wsoauth;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.message.Message;
import ch.ivyteam.ivy.webservice.exec.feature.WebServiceClientFeature;
import ch.ivyteam.ivy.webservice.exec.feature.WebServiceClientFeatureContext;
public class SetOAuthHeader implements WebServiceClientFeature 
{
    @Override
    public void initialize(WebServiceClientFeatureContext context) {
        String accessToken = "0b79bab50daca910b000d4f1a2b675d604257e42";
        Client proxy = ClientProxy.getClient(context.getBindingProvider());
        Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt; headers = new HashMap&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt;();
        headers.put("Authorization", Arrays.asList("Bearer "+accessToken));
        proxy.getRequestContext().put(Message.PROTOCOL_HEADERS, headers);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On the web service client add your class to the feature list:
&lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/WSHttpHeader.png"&gt;&lt;/p&gt;
&lt;p&gt;If you now call the web service that HTTP header 'Authorization' is set to 'Bearer 0b79bab50daca910b000d4f1a2b675d604257e42'&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Reto Weiss, Axon.ivy Support&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Reto Weiss</dc:creator><pubDate>Mon, 25 Mar 2019 15:58:45 -0400</pubDate><guid>https://answers.axonivy.com/questions/3746/how-to-set-additional-http-header-in-soap-webservice-request/3747</guid></item></channel></rss>