Извлечь данные из возвращенной строки - PullRequest
0 голосов
/ 15 февраля 2019

Я использую Katalon Studio и использую его для отправки запроса API.Запрос в основном возвращает информацию, которую я хочу использовать в заголовке HTTP.Я могу использовать Groovy или Java для извлечения этого, но не уверен, как мне это сделать.

Я пытался create_game_response.getHeadewrFields(GameCode), чтобы получить GameCode, но он не будет работать.

Вот код, который я использую

WS.sendRequest(findTestObject('UserRestService/Create Game'))
WS.verifyResponseStatusCode(create_game_response, 201)

def header_text = create_game_response.getHeaderFields()
println(header_text)

def game_code = create_game_response.getHeaderFields();

String game_code_list = game_code.toString()

println(game_code_list)

И это ответ:

{GameCode=[1jwoz2qy0js], Transfer-Encoding=[chunked], null=[HTTP/1.1 201 Created]}

Я пытаюсь извлечь "1jwoz2qy0js" из кода игры и использовать его в качестве строки,как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

getHeaderFields() возвращает карту заголовков, где каждый заголовок является списком.Вместо того, чтобы преобразовать это в строку и попытаться разобрать его, просто получите нужное поле:

Map headers = create_game_response.getHeaderFields()

List gameCodes = headers["GameCode"]

И затем выберите первое, если это все, что есть:

assert gamesCodes[0] == "1jwoz2qy0js"
0 голосов
/ 15 февраля 2019

Groovy код ниже:

str = '{GameCode=[1jwoz2qy0js], Transfer-Encoding=[chunked], null=[HTTP/1.1 201 Created]}'​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
left_idx = str.indexOf('[') + 1
right_idx = str.indexOf(']')
print str.substring(left_idx,right_idx)

Вывод:

1jwoz2qy0js
...