簡體   English   中英

HTTP響應標頭正則表達式

[英]HTTP Response Header Regex

我曾計划使用Jmeter Regex Extractor在HTTP Response Header中獲取會話ID。 這是HTTP標頭的示例:

HTTP/1.1 200 OK
x-powered-by: yoke
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST,GET,DELETE,PUT
Access-Control-Allow-Headers: X-Requested-With,jsessionid,Origin,Accept,Content-Type
Access-Control-Expose-Headers: Content-Size,Message,Total-Pages,Total-Count,Current-Page,jsessionid,Origin,Total-Outstanding,Content-Range
content-type: application/json
jsessionid: 10838d69-f9ac-4c70-b1f7-9447a7a6a463
Content-Length: 106

我需要得到的是:

10838d69-f9ac-4c70-b1f7-9447a7a6a463

我用這個REGEX:

jsessionid: [^\n]+

但是我得到:

jsessionid: 10838d69-f9ac-4c70-b1f7-9447a7a6a463

你能幫我嗎? 謝謝

最好的問候,Stefio

看看lookaround了正則表達式,為你特別的情況下,它會是回顧后發正則表達式。 盡管沒有經過測試,但仍無法正常工作:

(?<=jsessionid:\s).+

(?<=jsessionid:\\s)部分意味着從本質上匹配jsessionid:但不要將其包括在結果中

使用正則表達式

jsessionid: ([^\n]+)

和模板

$1$

您的問題與正則表達式分組有關。 組0是整個匹配項,這是Jmeter Regex Extractor的默認設置。 第一組是第一組括號內的正則表達式所匹配的。 模板$ 1 $說要使用組1的內容作為結果。 正則表達式分組會變得更加復雜,因此,如果您想從正則表達式中獲取多個值,請閱讀教程。 Jmeter Regex Extractor用戶手冊

JSESSIONID本質上是一個cookie,因此我認為您不需要使用正則表達式將其提取。

我可以想到兩種可能的原因:

  1. 您需要將下一個請求作為標頭傳遞
  2. 您還需要其他東西的價值

在兩種情況下,您都可以使用HTTP Cookie Manager

  • 對於第一個選項:它會自動處理Cookie
  • 對於第二個選項:將CookieManager.save.cookies屬性設置為true您應該能夠以${COOKIE_JSESSIONID}身份訪問Cookie值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM