这些天我正在使用更多的 groovy,我遇到了一个问题,我想将子字符串提升到一个已知字符。简而言之,我试图从 HTTP 标头中获取会话 cookie。我的代码是这样丑化的:
def cookie = connection.headerFields.find{ it.key =='Set-Cookie'}.value[0]
cookie = cookie[0..cookie.indexOf(';')-1]
其中 connection 是对 URLConnection 的引用。如果没有额外的操作,我会得到一个像"[JSESSIONID=72Q4TCEEDC21GX9152E7702A23DC3854E; Path=/; Secure]"
. 最终结果是预期的会话 id "JSESSIONID=72Q4TCEEDC21GX9152E7702A23DC3854E"
。但我不禁想到必须有一种更时髦的方法来解决这个问题。简而言之,我错过了一个substringToString(';')
我认为我可能至少在另一种语言中看到过的东西。总体而言,我认为可能有 4-5 种更好的方法来获取 cookie,而无需其他路径和安全措辞。