2016-03-28 4 views
1

In WSO2 ESB 490 ich die einfache API geschrieben haben:WSO2 ESB können nicht URL-Parameter erhalten, die enthält Komma

<api xmlns="http://ws.apache.org/ns/synapse" name="paramsTest" context="/params"> 
 
    <resource methods="GET" uri-template="/p?try={params_list}"> 
 
     <inSequence> 
 
     <property name="params_list" expression="get-property('uri.var.params_list')"/> 
 
     <log level="full"> 
 
      <property name="The input params : " expression="get-property('params_list')"/> 
 
     </log> 
 
     <payloadFactory media-type="json"> 
 
      <format>{"res_body":"$1"}</format> 
 
      <args> 
 
       <arg evaluator="xml" expression="get-property('params_list')"/> 
 
      </args> 
 
     </payloadFactory> 
 
     <respond/> 
 
     </inSequence> 
 
    </resource> 
 
</api>

es funktionieren, wenn der Zugriff von URL:

http://localhost:8290/params/p?try=one

und Antwort { "res_body": "one"}

Aber wenn der Zugriff von dieser URL:

http://localhost:8290/params/p?try=one,two

Es Antwort nichts, und es scheint ESB nicht die Anforderung verarbeiten haben Wegen der Parameter "try = one, two" durch Komma getrennt.

Wie kann diese URL machen ESB-Prozess? (Parameter durch Komma trennen)

+2

Können Sie versuchen, als eine% 2Ctwo –

+0

Vielen Dank, es kann funktionieren. Bedeutet das, dass wir Benutzer empfehlen sollten, ihre URL bei jedem Anruf zu verschlüsseln? – yeahliu

+0

ja. Ich denke, du musst das Komma mit% 2c codieren –

Antwort

2

AFAIK Sie das Komma mit% 2C kodieren müssen, wenn sie mit url params verwenden. z.B.

http://localhost:8290/params/p?try=one%2Ctwo 
1

Wenn Sie die Parameterliste über eine Eigenschaft erhalten, erhalten Sie% 2C codierte Werte mit Parametern. Sehen Sie sich das unten genannte Arbeitsbeispiel an.

Parameter wie oben beschrieben einzeln extrahieren.