2017-10-05 12 views
0

J'ai installé WSO2 EI 6.1.1. J'ai créé un proxy http et je crée une séquence qui obtient certaines valeurs de la requête et la traite via un médiateur Java Class. J'ai obtenu avec succès les paramètres de l'URL dans un médiateur de propriété en définissant l'expression $url:token. J'essaye d'obtenir aussi la méthode http (Get, Post, Put ...) et le corps de la requête mais je ne trouve pas les bonnes variables XPath qui les définissent.Synapse XPath Référence des variables

Ceci est un exemple d'une requête que je veux saisir (je veux PUT et les données JSON)

PUT path?token=aaaa HTTP/1.1 
Content-Length: 28 
Host: xx.xx.xx.xx 
Content-Type: application/json 

{ 
"id": 14, 
"value": "+02" 
} 

Il semble que les valeurs sont realted aux TRP $ et des objets de corps $, mais je pas été en mesure de trouver une référence sur la façon de les obtenir.


MISE À JOUR:

Définition corps $ comme expresion me donne le contenu suivant:

<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/> 
+0

Savez-vous que XPath est pour sélectionner des noeuds dans des documents XML? – kjhughes

+0

Je ne suis pas vraiment sûr de la façon dont je peux accéder à ces données. Si je comprends bien, les valeurs que je recherche sont au format XML dans les données échangées dans la requête. – jordi

+0

La documentation décrit certaines variables xpath, comme $ trp et $ body (transport anjd body) qui sont censées contenir les données, mais je n'ai pas été capable de l'extraire. – jordi

Répondre

1

Essayez ces derniers.

Corps:

<property name="payload" expression="$body"/> 

HTTP Verbe:

<property name="verb" expression="$axis2:HTTP_METHOD"/> 

ou

<property name="verb" expression="$ctx:HTTP_METHOD"/> 
+0

Cela fonctionne pour la méthode (axe, pas le dernier) mais lorsque je demande le corps, je n'ai que . Aucune trace du contenu json dans la requête – jordi

+0

Le corps peut être entièrement obtenu dans le médiateur Java Class en utilisant: reqBody = context.getEnvelope(). GetBody(). ToString(); – jordi