2015-01-06 4 views
0

서버가 보낸 응답을 수정합니다. 이 같은 형식으로 난 그냥 IP를 다시 전송하기위한 것입니다 테스트 API를 설정 한이 작업을 수행하려면서버 응답 페이로드 수정 JSON

{ 
    "origin": "202.37.75.130" 
} 

내 수정되지 않은 코드는 내가 원하는 걸 다시 제공합니다. 내 outSequence을 수정 한

{ 
    "IP Address": "202.37.75.130" 
} 

이 작업을 수행하려면 : 제가 테스트는 "IP 주소"를 "기원"의 이름을 변경하는 것 같은 희망과 같은 반응을 얻고 수행 할

코드의 섹션이 (내가 추가 한 모두가 PayloadFactoryMediator 부분이며, 필터 이전에 있었다) 할 수 그러나

<outSequence> 
    <payloadFactory media-type="json"> 
    <format>{ 
     "IP Address" : { 
     "$1" 
     } 
     } 
    </format> 
    <args> 
     <arg evaluator="json" expression="$.origin"/> 
    </args> 
    </payloadFactory> 
    <filter source="get-property('CORS_ORIGIN')" regex=".+"> 
    <then> 
     <property name="Access-Control-Allow-Origin" expression="get-property('CORS_ORIGIN')" scope="transport"/> 
     <property name="Access-Control-Expose-Headers" value="Assertion,X-Jwt-Assertion,X-User-Name,X-User-Domain" scope="transport"/> 
    </then> 
    </filter> 
    <send/> 
</outSequence> 

, 내가 API에 곱슬 곱슬 때 응답을하기 전에 같이

컬 : (52) 서버에서 빈 답장

아무도 내가 잘못했을 수도있는 것을 말해 줄 수 있습니까?

+0

"IP 주소"에서 공간을 제거하면 어떻게됩니까? – Petro

+0

@ 페트로 같은 말림 오류가 다시 발생합니다. 이것이 필터와 관련이 있는지 궁금합니다. 솔직히 말해 GUI를 사용하여 코드를 설정 했으므로 필터가 그 블록에서 무엇을하는지 확신 할 수 없습니다. – MLak

답변

0

"http://ip.jsontest.com/"에서 사용할 수있는 json 서비스에 대한 프록시 서비스를 생성하여 시나리오를 시도했는데 예상 한 결과가 나타납니다. 그러나 나는 당신과 같은 "payloadFactory"설정을 사용했다. 아래에서 전체 구성을 확인하십시오.

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="ipservice" 
     transports="https,http" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target> 
     <outSequence> 
      <payloadFactory media-type="json"> 
       <format>{ 
        "IP Address" : { 
        "$1" 
        } 
        } 
       </format> 
       <args> 
        <arg evaluator="json" expression="$.ip"/> 
       </args> 
      </payloadFactory> 
      <send/> 
     </outSequence> 
     <endpoint> 
      <address uri="http://ip.jsontest.com/"/> 
     </endpoint> 
    </target> 
    <description/> 
</proxy> 

위의 구성을 필터 태그와 함께 사용해 보았습니다. 그것은 잘 작동합니다. 따라서 위의 구성에는 오류가 없습니다. JSON 서비스 및 기타 구성을 확인하십시오.

다음 명령을 사용하여 서비스를 호출했습니다.

curl -v -X GET "http://localhost:8280/services/ipservice" 
+0

이상 하네. 나는 당신이 여기서 쓴 것과 똑같은 방식으로 복사하고 붙여 넣었습니다. 내가 지금 얻을 것은 : { "된 JSONObject" { "여기서 IP_Address": "202.37.75.130"}} 이제 "된 JSONObject"부분을 없애려고 , 그래서 나가 모두가 "{여기서 IP_Address입니다 ":"202.37.75.130 "} – MLak