Katalon добавить заголовок авторизации не удалось - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь разместить заголовок авторизации по коду в моем веб-запросе. Значение авторизации получается из ответа при входе в систему.

Вот как я создаю запрос на вход:

loginResponse = WS.sendRequest(loginRequest)
WS.verifyResponseStatusCode(loginResponse, 200)
println '>>> login status code is: ' + loginResponse.statusCode

и получить ответ, подобный этому:

println '>>> response: ' + loginResponse.getResponseBodyContent()
String responseString = loginResponse.getResponseBodyContent()
JsonSlurper slurper = new JsonSlurper()
Map responseParsed = slurper.parseText(responseString)
println '>>> token: ' + responseParsed.token


Далее я хочу достичь другой конечной точки, используя заголовок в качестве Авторизации со значением от responseParsed.token. Это выглядит так:

RequestObject requestActivate = new RequestObject('activator')
TestObjectProperty propToken = new TestObjectProperty('Authorization', ConditionType.EQUALS, responseParsed.token)
ArrayList headers = Arrays.asList(propToken)
requestActivate.setHttpHeaderProperties(headers)
requestActivate.setRestUrl('http://xxxxxx.com/registration/activate_email')
requestActivate.setRestRequestMethod('GET')
verifResponse = WS.sendRequest(findTestObject('Object Repository/REST_Cicil/Hit Email Verification API - Staging Main'))

но я всегда получаю ошибку 403 Forbidden. Похоже, что я не добавил заголовок должным образом. Я попытался ударить его вручную с помощью Почтальона, и он работает.

1 Ответ

0 голосов
/ 17 января 2019

кроме только авторизации, попробуйте добавить тип контента и принять полный заголовок.

например:

String endpoint = "https://www.katalon.com"
 String requestMethod = "GET"
 String authHeader = "whateverYouNeedForAuthentication"
 TestObjectProperty header1 = new TestObjectProperty("Authorization", ConditionType.EQUALS, authHeader)
 TestObjectProperty header2 = new TestObjectProperty("Content-Type", ConditionType.EQUALS, "application/json")
 TestObjectProperty header3 = new TestObjectProperty("Accept", ConditionType.EQUALS, "application/json")
 ArrayList defaultHeaders = Arrays.asList(header1, header2, header3)


public ResponseObject buildApiRequest1() {
  RequestObject ro = new RequestObject("objectId")
  ro.setRestUrl(endpoint)
  ro.setHttpHeaderProperties(defaultHeaders)
  ro.setRestRequestMethod(requestMethod)
  ResponseObject respObj = WS.sendRequest(ro)
  return respObj
 }

Ссылочная ссылка

...