Я пытаюсь отправить запрос POST с полезной нагрузкой (xml).Вот мой пример кода:
val xml = """
| <?xml version="1.0" encoding="UTF-8"?>
........
........
""".stripMargin
RestAssured.baseURI = "https://xxxxxxxxx"
val request: RequestSpecification = given().port(1234).auth().basic("test", "test")
request
.header("Accept", ContentType.XML)
.contentType("application/xml")
.body(xml)
val response = request.post("/transformToXML2")
val statusCode = response.getStatusCode
Assert.assertEquals(statusCode, 200) //PASSED
Проблема: Если я отправляю тот же XML через интерфейс SOAP (Rest), я получаю ответ с ожидаемым XML.По этому коду я вижу в своем журнале следующее:
DEBUG o.a.h.i.c.DefaultClientConnection - Sending request: POST /transformToXML2 HTTP/1.1
DEBUG o.a.h.wire - >> "POST /transformToXML2 HTTP/1.1[\r][\n]
DEBUG o.a.h.wire - >> "Accept: application/xml[\r][\n]
....
DEBUG o.a.h.wire - >> "Content-Length: 17333[\r][\n]
.......
DEBUG o.a.h.wire - >> "Accept-Encoding:gzip,deflate[\r][\n]
DEBUG o.a.h.wire - >> [\r][\n]
DEBUG o.a.h.headers - >> "POST /transformToXML2 HTTP/1.1[\r][\n]
DEBUG o.a.h.headers - >> "Accept: application/xml[\r][\n]
....
DEBUG o.a.h.headers - >> "Content-Length: 17333[\r][\n]
.......
DEBUG o.a.h.headers - >> "Accept-Encoding:gzip,deflate[\r][\n]
DEBUG o.a.h.headers - >> [\r][\n]
Ниже в журналах есть XML:
DEBUG o.a.h.wire - >> [\r][\n]
DEBUG o.a.h.wire - >> "<?xml version="1.0" encoding="UTF-8"?>"[\r][\n]
.....
DEBUG o.a.h.wire - >> " "
Q1: Почему у меня есть следующие строки (с учетом вышеупомянутого кодавозвращает 200)
DEBUG o.a.h.wire - << "HTTP/1.1 401 Unauthorized"[\r][\n]
DEBUG o.a.h.wire - << "Connection: keep-alive"[\r][\n]
DEBUG o.a.h.wire - << "WWW-Authenticate: Basic realm="Realm name"[\r][\n]"
DEBUG o.a.h.wire - << "Content-Length: 0"[\r][\n]
DEBUG o.a.h.i.c.DefaultClientConnection - Receiving request: HTTP/1.1 401 Authorized
Q2: После этого строки дублируются в журнале.Почему полезная нагрузка отправляется дважды в журнал соответственно:
DEBUG o.a.h.i.c.DefaultHttpClient- Attemp 2 to execute request //Why 2 request?
DEBUG oahicDefaultClientConnection - Запрос на отправку: POST / transformToXML2 HTTP / 1.1
DEBUG o.a.h.wire - >> "POST /transformToXML2 HTTP/1.1[\r][\n]
DEBUG o.a.h.wire - >> "Accept: application/xml[\r][\n]
DEBUG o.a.h.wire - >> "Content-Type: application/xml; charset=ISO-885901[\r][\n]
DEBUG o.a.h.wire - >> "Content-Length: 17333[\r][\n]
DEBUG o.a.h.wire - >> "Host: host+port [\r][\n]
DEBUG o.a.h.wire - >> "Connection: Keep-Alive[\r][\n]
DEBUG o.a.h.wire - >> "User-Agent: Apache-HttpClient/4.5.3..[\r][\n]
DEBUG o.a.h.wire - >> "Autorithation: Basic qwertyqweqwe[\r][\n]
DEBUG o.a.h.wire - >> "Accept-Encoding: gzip,deflate[\r][\n]
DEBUG o.a.h.i.c.DefaultClientConnection - Receiving request: HTTP/1.1 200 OK
DEBUG o.a.h.headers << HTTP/1.1 200 Ok
DEBUG o.a.h.headers << Content-Length: 107
DEBUG o.a.h.headers << Content-Type: application/xml