RestAssured создает два последовательных запроса POST и возвращает ошибку 401 - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь отправить запрос 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

1 Ответ

0 голосов
/ 25 февраля 2019

Q1 разрешается добавлением preemptive ().до Basic (), поэтому у меня нет 401 ошибка

...