2017-09-20 8 views
1

내 프로젝트의 특정 API는 인코딩 된 형식을 사용하는 OAuth 2.0을 통해서만 액세스 할 수 있습니다. POSTMAN을 사용하여 POST를 수동으로 제출할 수 있습니다. 요청을 보내려면 x-www-form-urlencoded 기능이 있습니다 (첨부 된 이미지). 이 문제를 해결하기 위해 json 본문을 인코딩 된 URI로 변환하고 변수로 전달하는 java 함수를 만들었습니다. 그러나, 그것을 실행하면 "URL에 대한 http 호출에 실패했습니다." 공수가 json을 인코딩 된 URI로 변환하는 자체 라이브러리를 가지고 있는지 궁금합니다.가라데 DSL 프레임 워크는 POST 요청을 URL 인코딩 형식으로 전달할 수 있습니까?

시나리오 : JSON은 POST 본체에

* def JavaDemo = Java.type('com.ge.health.gam.service.servicerequest.testsuite.CustomJavaClass') 
* def encodedURI = JavaDemo.jsonToURI() 
* print encodedURI 

Given url 'http://location.ver02.geicenter.com/uaa/oauth/token' 
And request encodedURI 
When method post 
Then status 200 

com.intuit.karate.exception.KarateException을 URI를 인코딩합니다 : HTTP는 URL에 대한 263 밀리 초 후에 실패한 호출합니다 : http://location.ver02.geicenter.com/uaa/oauth/tokenenter image description here

답변

1

예. form field에 대한 설명서를 참조하십시오. demos에는 OAuth 2 예제도 있습니다. 찾으십시오.

1

피터 토마스 (Peter Thomas)가 제안한 바에 따르면, 아래에서 맹세 2.0을 통해 요청을 제출할 수 있습니다. 필자의 경우 유효한 응답을 받으려면 필수 인증서를 설치해야했습니다. 당신은 또한 그것을 고려해야합니다.

Given path 'uaa', 'oauth', 'token' 
And form field key = 'value' 
And form field key = 'value' 
And form field key = 'value' 
And form field key = 'value' 
When method post 
Then status 200 
+0

SSL 문제 중 하나를 해결하는 베타 버전 0.6.0.2가 있습니다. 따라서 인증서가 필요없고 "* configure ssl = true"만 있으면 충분합니다. 이 기능이 작동하는지 확인하면 좋을 것입니다. –