2016-06-08 1 views
0

J'utilise Axis2 RPCServiceClient pour appeler un webservice. et tous les appels au service doivent inclure 3 paramètres: UserName, Password et reqID. reqID est un paramètre GUID généré par moi.comment ajouter un paramètre dans l'en-tête, j'appelle webservice par axis2

Le reqID doit être placé dans l'en-tête. Lorsque j'utilise soapUI pour tester le service, par l'Analyseur Http, j'ai pu trouver le reqID inclus dans les en-têtes de requête avec SOAPAction, Content-type, User-Agent et Authorization.

Comment ajouter reqID dans l'en-tête?

`RPCServiceClient client = new RPCServiceClient(); 
    Options option = client.getOptions(); 
    option.setAction("http://localhost:8080/api/Getbooks"); 
    EndpointReference erf = new EndpointReference(serviceAddress); 
    option.setTo(erf);  

    HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator(); 
    auth.setUsername("test"); 
    auth.setPassword("test"); 
    auth.setPreemptiveAuthentication(true); 

    option.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);' 

    [![this is request headers][1]][1] 

Répondre

0

Créer une instance de org.apache.axis2.client.ServiceClient

Créer une instance de org.apache.axis2.client.Options

créer un en-tête client http

Header header = new Header(); 
    header.setName("Request-Id"); 
    header.setValue(UUID.randomUUID().toString()); 
    List list = new ArrayList(); 
    list.add(header); 

options.setPr operty (org.apache.axis2.transport.http.HTTPConstants.HTTP_HEADERS, liste);