Как использовать Play Framework WSClient для совместного использования одного и того же сеанса для вызова нескольких служб в Scala?

Я пытался получить больше информации о WSClient, но не получил достаточно информации в Интернете.

Вот сценарий: я вызываю 3 разные службы отдыха из приложения в следующем порядке. Войти -> Загрузить файл -> Отправить

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

Я смог правильно реализовать то же самое в Java, используя HttpClient. Но не уверен, как я могу использовать тот же сеанс с использованием WSClient здесь. Как я могу решить эту проблему? или я получаю эту проблему по какой-то другой причине?

Ниже приведен пример кода, который я использую.

def login(loginUri: String, userName: String, password: String): Int ={
   val loginResponse: Future[WSResponse] = ws.url(loginUri).withAuth(userName, password, WSAuthScheme.BASIC).get()
   ...
}

def uploadFile(uploadUri: String, file: File): Option[String] ={
   val uploadResponse: Future[WSResponse] = ws.url(uploadUri).post(Source(FilePart("file", FilenameUtils.getName(file.getName), Option("application/vnd.ms-excel"), FileIO.fromPath(file.toPath)) :: List()))
   ...
}

def invoke(uri: String, payload: String): Option[String] {
   val futResponse: Future[WSResponse] = ws.url(uri).addHttpHeaders("Content-Type" -> "application/json").post(payload)
   ...
}

0 ответов

Другие вопросы по тегам