【发布时间】:2017-06-08 12:02:18
【问题描述】:
我正在使用 Java 开发 RESTful 云应用程序,一旦我实现了 POST、DELETE、PUT 和 GET 的所有方法,我需要通过一个简单的 Java 客户端测试它们。我通过以下方式成功测试了 GET 和 DELETE:
String findById = target.path("..").path("..").path("17").request()
.accept(MediaType.APPLICATION_JSON).get(String.class).toString();
System.out.println(findById);
但是现在当我想尝试 PUT 和 POST 时,我无法让它工作。我尝试了以下方法:
String addBook = target.path("..").path("..").queryParam("author", "OO")
.queryParam("language", "OO")
.queryParam("publisher", "OO")
.queryParam("subject", "OO")
.queryParam("title", "OO")
.queryParam("isbn", "OO").request().accept(MediaType.APPLICATION_JSON)
.post(String.class);
错误表明 .post 期望“SyncInvoker 类型中的方法 post(Entity, Class) 不适用于参数 (String, Class)”。
所以我的问题是实体应该是什么以及我应该如何指定它?客户端项目单独运行,而不是在主(服务器)项目上。
【问题讨论】:
-
这个我没用过,但是看看能用的代码,get 后有 .toString(),嗯,post 后能贴上 .toString() 吗?
-
您使用什么工具来编写您的应用程序?许多框架都有特定的测试工具(例如 Spring MockMvc 甚至 Spring REST Docs)。
标签: java rest web-applications