使用 Spock 将正文添加到 Http 请求

Adding body to Http request with Spock

我正在开发一个 Spring 引导应用程序,我正在尝试使用 Spock 和 groovyx.net.http.RESTClient 进行一些 authorization/authentication 测试。我正在尝试像这样在正文块中传递用户名和密码:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
class AuthorizationTest extends Specification {

    @Shared
    def client = new RESTClient("http://localhost:8080")

    def "something should happen"() {
        when:
        def response = client.post(
                path: "/login",
                body: [ password : "1234", username : "admin"],
                requestContentType: ContentType.JSON
        )

        then:
        response.status == 200
    } 

遗憾的是,有些东西不工作,当我调试时,我没有在请求中看到两个参数(用户名和密码)。 我做错了什么?

原来我需要使用不同的编码,requestContentType: ContentType.URLENC,它的类型是 application/x-www-form-urlencoded