@Test
public void whenSendPostRequest_thenCorrect()
throws IOException {
RequestBody formBody = new FormBody.Builder()
.add("username", "test")
.add("password", "test")
.build();
Request request = new Request.Builder()
.url(BASE_URL + "/users")
.post(formBody)
.build();
Call call = client.newCall(request);
Response response = call.execute();
assertThat(response.code(), equalTo(200));
}
参考-https://www.baeldung.com/guide-to-okhttp
我试图执行这种类型的请求,在形成formBody时,我必须做一些类似的事情来拥有.add(“something”,json_object),但它接受字符串值,我不能传递json字符串如何解决这个问题
而且json_object非常大,所以不能只为每个键值对使用许多.add语句
3条答案
按热度按时间pxiryf3j1#
建议您创建一个model/pojo类,其字段与json字符串中的字段相同。然后将该类类型的对象添加到FormBody类中。您可以使用json到对象Map器将输入json转换为新模型类的对象。
ryevplcw2#
因此,您需要在此处进行集成测试。我正在使用这样的东西:
given()将在rest-assured中找到。
ObjectMapper是一个可以在Jackson库中找到的类:Jackson数据处理器createJwtToken()负责给予具有ADADMIN_ID的JWT。
希望会有帮助。
6mzjoqzu3#
经过一些探索,我发现我们可以使用okhttp Requestbody class create方法将json_string转换为请求体json,该方法将json mediatype和json_string作为参数,然后这个体可以传递给请求构建器的.post方法。