2017-09-11 3 views
0

j'ai écrit mon cas de test ci-dessous et a obtenu l'erreur ci-dessous,obtenir 302 en utilisant une méthode POST dans le repos assuré

erreur Connexion:

FAILED: setpassword java.lang.AssertionError: 1 expectation failed. Expected status code <200> but was <302>.

code:

@Test(enabled=true) 

public void setpassword(){ 
    RequestSpecification requestSpecification= new Config().getRequestSpecification(); 
    RequestSpecification requestHeaders= new Config().getHeaders(); 

    Map<String,String> password = new HashMap<String, String>(); 
    password.put("password", "[email protected]"); 
     given().spec(requestSpecification).spec(requestHeaders).body(password).when().post("https://example.com/[email protected]/password"). 
    then().statusCode(200).log().all(); 


} 
+0

Quelle est la question ici? Votre test a échoué car vous attendiez une réponse HTTP 200, mais vous avez obtenu une redirection 302. Cela semble être une raison valable pour que cela échoue. –

+0

le même api me donne 200 dans le facteur. Le problème ici est quand il y a un email dans l'API, ça donne 302 erreur. Je veux savoir s'il y a un moyen de gérer un tel cas. – Ifrit

+0

J'ai trouvé que "@" dans l'email est encodé en% 40 et donc l'API renvoie une erreur 302. Y a-t-il un moyen de prévenir cela? Merci pour l'aide à l'avance !! – Ifrit

Répondre

0

j'ai résolu le problème. Je recevais une erreur 302 parce que l'URL d'api était encodée. J'ai utilisé urlEncodingEnabled (false) et il a résolu le problème.