问题描述
我知道请求模板支持 XPath,因此我可以从 {{xPath request.body '/outer/inner/text()'}}
之类的请求中获取价值。我已经有一个 XML 文件作为响应,我想注入我从请求中获得的这个值,但保持这个响应 XML 的其他部分完好无损。例如,我想将其注入到 XPATH /svc_result/slia/pos/msid
。
我需要在独立模式下使用它。
我看到另一个问题 (Wiremock Stand alone - How to manipulate response with request data) 但那是关于 JSON,我有 XML 请求/响应。
怎么办?谢谢。
例如,我有这样的映射定义:
{
"request": {
"method": "POST","bodyPatterns": [
{
"matchesXPath": {
"expression": "/svc_init/slir/msids/msid[@type='MSISDN']/text()","equalTo": "200853000105614"
}
},{
"matchesXPath": "/svc_init/hdr/client[id and pwd]"
}
]
},"response": {
"status": 200,"bodyFileName": "slia.xml","headers": {
"Content-Type": "application/xml;charset=UTF-8"
}
}
}
还有这个请求:
<?xml version="1.0"?>
<!DOCTYPE svc_init>
<svc_init ver="3.2.0">
<hdr ver="3.2.0">
<client>
<id>dummy</id>
<pwd>dummy</pwd>
</client>
</hdr>
<slir ver="3.2.0" res_type="SYNC">
<msids>
<msid type="MSISDN">200853000105614</msid>
</msids>
</slir>
</svc_init>
我希望得到这个响应,请求中的 xxxxxxxxxxx
替换为 <msid>
。
<?xml version="1.0" ?>
<!DOCTYPE svc_result SYSTEM "MLP_SVC_RESULT_320.DTD">
<svc_result ver="3.2.0">
<slia ver="3.0.0">
<pos>
<msid type="MSISDN" enc="ASC">xxxxxxxxxxx</msid>
<pd>
<time utc_off="+0800">20111122144915</time>
<shape>
<EllipticalArea srsName="www.epsg.org#4326">
<coord>
<X>00 01 01N</X>
<Y>016 31 53E</Y>
</coord>
<angle>0</angle>
<semiMajor>2091</semiMajor>
<semiMinor>2091</semiMinor>
<angularUnit>Degrees</angularUnit>
</EllipticalArea>
</shape>
<lev_conf>90</lev_conf>
</pd>
<gsm_net_param>
<cgi>
<mcc>100</mcc>
<mnc>01</mnc>
<lac>2222</lac>
<cellid>10002</cellid>
</cgi>
<neid>
<vmscid>
<vmscno>00004946000</vmscno>
</vmscid>
<vlrid>
<vlrno>99994946000</vlrno>
</vlrid>
</neid>
</gsm_net_param>
</pos>
</slia>
</svc_result>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)