2017-10-05 99 views
0

我已經安裝了WSO2 EI 6.1.1。我創建了一個http代理,並且創建了一個從請求中獲取特定值並通過Java Class中介處理它的序列。通過將表達式定義爲$url:token,我已成功從屬性介體中的URL獲取參數。Synapse XPath變量參考

我想獲得http方法(Get,Post,Put ...)和請求的主體,但是我找不到定義它們的正確的XPath變量。

這是我想捕捉的請求(我想PUT和JSON數據)的例子

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

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

看來,值realted到$ TRP和$身體的對象,但我有沒能找到任何關於如何獲得它們的參考。


UPDATE:

定義$身體爲expresion給了我下面的內容:

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

你是否意識到XPath是XML中選擇節點? – kjhughes

+0

我不太確定如何獲取這些數據。據我所知,我要搜索的值是XML格式的請求中交換的數據。 – jordi

+0

文檔描述了一些xpath變量,如$ trp和$ body(transport anjd body),它們應該包含數據,但我無法解壓縮它。 – jordi

回答

1

嘗試這些。

身體:

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

HTTP動詞:

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

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

它適用於方法(軸,而不是最後一個),但是當請求身體時,我只能得到。請求中沒有json內容的跟蹤 – jordi

+0

使用以下方法可以在Java Class中介中完全獲取Body:reqBody = context.getEnvelope()。getBody()。toString(); – jordi