요청 받기에 대한 응답 헤더에 표시 할 콘텐츠 인코딩을 가져 오는 데 문제가 있습니다.

JChu

특정 응답 헤더에 gzip 값이있는 Content-Encoding 헤더 필드가 포함되어 있는지 확인하는 가라테 테스트를 작성하려고했습니다. 콘텐츠 인코딩 필드가 가라테의 응답에서 누락 된 경우 내 API를 사용해 보았습니다. 이 두 끝점은 모두 postman 및 curl 명령에 대한 콘텐츠 인코딩 필드를 반환했습니다.

그런 다음 가라테가 문제를 겪고있는 것이 내 API 엔드 포인트인지 확인하기 위해 postman-echo 서비스에 접속하려고 시도했으며 내 API만이 아닌 것 같습니다. 누군가 내 코드를 살펴보고 응답에 헤더 필드를 표시하기 위해 내가 잘못하고 있는지 확인할 수 있습니까?

Feature: test getting Content-Encoding

  Background:
    * url 'https://postman-echo.com/gzip'

  Scenario:
    Given header Accept-Encoding = 'gzip'
    When method get
    Then status 200
    And match responseHeaders contains {'Content-Encoding':'#present'}

이것은 가라테 요청의 모습입니다

1 > GET https://postman-echo.com/gzip
1 > Accept-Encoding: gzip
1 > Connection: Keep-Alive
1 > Host: postman-echo.com
1 > User-Agent: Apache-HttpClient/4.5.12 (Java/1.8.0_252)

응답은 다음과 같습니다.

1 < 200
1 < Connection: keep-alive
1 < Content-Type: application/json; charset=utf-8
1 < Date: Fri, 08 May 2020 16:18:42 GMT
1 < ETag: W/"ef-7kclc8pzXTvQiPUaEOf6j95iFaE"
1 < Vary: Accept-Encoding
1 < set-cookie: sails.sid=s%3A6G_FShPRZH4V1G-tVDfUEEfMwQQmolo5.T2Cb37zqYA21FTyRyIGutVWQWo9ta4EWiod36%2FkM88I; Path=/; HttpOnly
{
  "gzipped": true,
  "headers": {
    "x-forwarded-proto": "https",
    "x-forwarded-port": "443",
    "host": "postman-echo.com",
    "x-amzn-trace-id": "Root=1-5eb58662-c4aaeec26efd116ac0544a18",
    "accept-encoding": "gzip",
    "user-agent": "Apache-HttpClient/4.5.12 (Java/1.8.0_252)"
  },
  "method": "GET"
}

curl 응답 헤더는

curl --location --request GET 'https://postman-echo.com/gzip' \
> --header 'Accept-Encoding: gzip' -I

HTTP/2 200 
date: Fri, 08 May 2020 16:21:53 GMT
content-type: application/json; charset=utf-8
content-length: 220
content-encoding: gzip
etag: W/"dc-BuD8DN1qXT7trYUQtZOuSvbq1pM"
vary: Accept-Encoding
set-cookie: sails.sid=s%3Aj86lznX3nK20fnEN4B3nbHESrfWqVJ3M.236VrsmQp7V%2F7%2BrvG%2FEtlc9yUVLTtylh1yyIAdQJSiY; Path=/; HttpOnly

피터 토마스

이것은 Apache HttpClient가 작동하는 방식 또는 Karate 용으로 구성되는 방식 인 것 같습니다. 방금 헤더를 다음과 karate-jersey같이 가져 왔습니다 .

1 > GET https://postman-echo.com/gzip
1 > Accept: */*
1 > Accept-Encoding: gzip
1 > User-Agent: Jersey/2.30 (HttpUrlConnection 1.8.0_231)

22:40:48.981 [ForkJoinPool-1-worker-1] DEBUG com.intuit.karate - response time in milliseconds: 1177.37
1 < 200
1 < Connection: keep-alive
1 < Content-Encoding: gzip
1 < Content-Length: 248
1 < Content-Type: application/json; charset=utf-8
1 < Date: Fri, 08 May 2020 17:10:48 GMT
1 < ETag: W/"f8-sigbV4PuNI2Fx08AqzMEqW1WIYY"
1 < Vary: Accept-Encoding

따라서 Jersey가 나머지 테스트에서 괜찮다면 그게 전부일 수 있습니다. 이 작업을 수행하는 karate-apache것은 저에게 우선 순위가 아니므로 귀하 또는 다른 사람이 기꺼이 조사하거나 수정하려는 경우 좋을 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관