如何放心设置url编码的表单实体并添加参数给表单实体?

How to set url encoded form entity and add params to form entity in rest assured?

下面的示例代码在http客户端中,但我想在Rest Assured中写同样的代码。我知道我们也可以放心使用 http 库,但我想放心

HttpPost pst = new HttpPost(baseUrl, "j_spring_security_check"))
pst.setHeader("Content-Type", "application/x-www-form-urlencoded")
ArrayList<NameValuePair> postParam = new ArrayList<NameValuePair>()
postParam .add(new BasicNameValuePair("j_username",username))
postParam .add(new BasicNameValuePair("j_password",password))
UrlEncodedFormEntity formEntity23 = new UrlEncodedFormEntity(postParam)
pst.setEntity(formEntity23 )
HttpResponse response = httpclient.execute(pst);

为了放心,您可以使用以下代码片段。

Response response = RestAssured
    .given()
    .header("Content-Type", "application/x-www-form-urlencoded")
    .formParam("j_username", "uName")
    .formParam("j_password", "pwd")
    .request()
    .post(url);

因为,您的应用程序使用表单 url 编码的内容类型,您可以如上所述将页眉类型设置为此。

希望对你有所帮助。

@Test
public void postRequestWithPayload_asFormData() {
    given().contentType(ContentType.URLENC.withCharset("UTF-8")).formParam("foo1", "bar1").formParam("foo2", "bar2").log().all()
            .post("https://postman-echo.com/post").then().log().all().statusCode(200)
            .body("form.foo1", equalTo("bar1"));
}

添加 URLENC 的内容类型,字符集为 UTF-8。会用的,最晚放心。