使用 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
。
我正在开发一个 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
。