1

感谢您的时间和提前帮助。

我正在使用soapUI 模拟服务并尝试编写Groovy 脚本。我收到的请求查询 URL 如下所示:

 http://server:port/readwrapper/v1/historicalData/medicalHistory/STR/888888_2.16.840.1.113883.3.42.10012.100001.206_h0102a3727570b14038b349136f2a5fd58e0102

我试图从这个 URL 中提取的是

  1. 2.16.840.1.113883.3.42.10012.100001.206 是社区ID
  2. h0102a3727570b14038b349136f2a5fd58e0102 是文档 ID

我能够在 Groovy 中编写的所有代码是:

def reqStr = mockRequest.getHttpRequest().getQueryString()

我不知道如何进一步进行。请帮忙。

4

1 回答 1

2

不确定它是否有效(我不使用 SoapUI),但您可以尝试:

def (cid,did) = mockRequest.httpRequest
                           .requestURI
                           .tokenize( '/' )
                           .last()
                           .tokenize( '_' )
                           .drop( 1 )

如果 Groovy SoapUI 使用的版本不支持drop

def (cid,did) = mockRequest.httpRequest
                           .requestURI
                           .tokenize( '/' )
                           .last()
                           .tokenize( '_' )[ 1..-1 ]

如果它不支持多重赋值,那么:

def parts = mockRequest.httpRequest
                       .requestURI
                       .tokenize( '/' )
                       .last()
                       .tokenize( '_' )[ 1..-1 ]
def cid = parts[ 0 ]
def did = parts[ 1 ]
于 2013-10-16T14:51:55.603 回答