- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
Documentation建议使用模拟网络服务测试基于 WSClient 的 API 客户端,即创建一个 play.server.Server
来响应真实的 HTTP 请求。
我更愿意直接从文件创建 WSResponse
对象,完成状态行、标题行和正文,而不需要真正的 TCP 连接。这将需要更少的依赖并运行得更快。在其他情况下也可能有用。
但是我找不到一个简单的方法来做到这一点。似乎所有由 WSResponse
包装的实现都与从网络读取相关。
我应该为此创建自己的 WSResponse 子类,还是我错了,它已经存在了?
最佳答案
Play 的 API 似乎有意变得迟钝。您必须使用它们的“可缓存”类,这是唯一可以从您周围的对象直接实例化的类。
这应该让你开始:
import play.api.libs.ws.ahc.AhcWSResponse;
import play.api.libs.ws.ahc.cache.CacheableHttpResponseBodyPart;
import play.api.libs.ws.ahc.cache.CacheableHttpResponseHeaders;
import play.api.libs.ws.ahc.cache.CacheableHttpResponseStatus;
import play.shaded.ahc.io.netty.handler.codec.http.DefaultHttpHeaders;
import play.shaded.ahc.org.asynchttpclient.Response;
import play.shaded.ahc.org.asynchttpclient.uri.Uri;
AhcWSResponse response = new AhcWSResponse(new Response.ResponseBuilder()
.accumulate(new CacheableHttpResponseStatus(Uri.create("uri"), 200, "status text", "protocols!"))
.accumulate(new CacheableHttpResponseHeaders(false, new DefaultHttpHeaders().add("My-Header", "value")))
.accumulate(new CacheableHttpResponseBodyPart("my body".getBytes(), true))
.build());
神秘的 boolean 值没有记录。我的猜测是 BodyPart 的 boolean 值是它是否是 body 的最后一部分。我对 header 的猜测是 header 是否在消息的尾部。
关于java - 如何从 Play WSClient 的字符串创建 WSResponse 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34753534/
希望有人能帮忙。我正在尝试从 Play 2.4 升级到 2.5。升级后,我在 JavaController 类中收到错误。显示错误之一 [error] /Play-2-JS-2.5/app/contr
所以我有以下操作,我想找到一种方法来直接返回响应,而不必将其映射到每个可能的状态代码的结果,即跳过 if-else 部分。 def testAction = Action { implicit req
我正在尝试设置局部变量的值,但这显示错误 Local variable user_id defined in an enclosing scope must be final oreffectivel
Documentation建议使用模拟网络服务测试基于 WSClient 的 API 客户端,即创建一个 play.server.Server 来响应真实的 HTTP 请求。 我更愿意直接从文件创建
我不熟悉在其中使用 Play Framework 和 WSClient。我在尝试时遇到了问题。 我使用 WS.url("urlhere").withHeaders("Cookie -> cookieI
我正在尝试在 Play2.4 中编写一个简单的应用程序。我想获取一个页面并将其显示在我的本地主机上,该本地主机将充当代理。以下是我在 Controller 中的操作: public class Pro
我是一名优秀的程序员,十分优秀!