我试图获取有关 WSClient 的更多信息,但在网络上没有获得足够的信息。
这是场景:我按以下顺序从应用程序调用 3 种不同的休息服务。登录 -> 上传文件 -> 提交
我想在这 3 个休息服务调用中共享同一个会话,以完成我的过程。我能够成功调用登录休息服务,当我尝试调用其余服务时,它返回的响应为"403 disabled"。
我能够使用HttpClient在 Java 中 正确实现同样的事情。但不确定如何在此处使用 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)
...
}