2017-01-05 3 views
1

POST 요청을하기 위해 uri 모듈을 사용하고 있습니다. 요청은 201 또는 208 상태를 리턴하며 두 상태 코드는 태스크가 전달되도록 고려해야합니다. status_code 값을 여러 개 지정하려면 어떻게해야합니까? uri module manualPossible uri 모듈의 다중 status_code

- uri: 
     url: "http://mywebsite.org/api/hooks/release/builtin/" 
     method: POST 
     HEADER_Content-Type: "application/json" 
     body: '{"version": "6.2.10"}' 
     body_format: json 
     status_code: 208 
    register: result 
    failed_when: status_code != 201 or status_code != 208 

답변

3

: 요청의 성공을 의미

status_code 유효한, 숫자, HTTP 상태 코드입니다. 쉼표로 구분 된 상태 코드 목록 일 수도 있습니다.

그래서 :

- uri: 
    url: "http://mywebsite.org/api/hooks/release/builtin/" 
    method: POST 
    HEADER_Content-Type: "application/json" 
    body: '{"version": "6.2.10"}' 
    body_format: json 
    status_code: 201, 208 
    register: result 
+0

시도했는데 status_code가 정의되지 않았습니다. –

+0

그러면 그 줄을 모두 없애야합니다. 그래서 StackOverflow에 질문 할 때 오류가있는 검증 가능한 예제를 포함시켜야합니다. – techraf

+0

나는 그것이 실패한'failed_when'라고 생각하지만, 그래, @drishtiahuja는 문제를 더 잘 전달할 필요가있다. – tedder42

0

not inresult.status를 사용하는 failed_when

failed_when 요구를 사용하는이 솔루션은 다음과 같은 상황을 제대로 평가하기 :

failed_when: result.status not in [201,208]

,536,

질문에있는 코드 문제 첫 번째 문제는 status_code을 이와 같이 참조 할 수 없다는 것입니다. 그러나 result 개체를 사용하여 status을 참조 할 수 있습니다. failed_when: result.status != 201 or result.status != 208

그러나이 여전히 status208 경우 다음 동일하지 201result.status != 201 조건이 실패 (반대의 경우도 마찬가지)을 수행하기 때문에 201 또는 208가 반환 될 때 실패 : 같은 다음 failed_when statemment이 보일 것이다.

+0

"status_code가 uri 모듈의 잘못된 속성입니다"- 그 방법은 무엇입니까? –

+0

@ KonstantinSuvorov 일단 Minimal, Complete, Verifiable 예제를 만들었 으면'uri' 모듈의 속성의 일부가 아닌'task' 레벨에 상태 코드 속성을 적용 시켰습니다. 내 대답에서이 잘못된 정보를 삭제했습니다. – darkwing