Lors de la tentative de test de la classe Client, l'enchaînement des appels POST fonctionne correctement, contrairement à GET. Qu'est-ce que je fais mal ici/ne pas comprendre correctement?WireMock - Stubbing GET avec le corps ne fonctionne pas lorsque le talonnage POST fonctionne correctement
code client (POST):
HttpResponse httpResponse = new DefaultHttpRequestBuilder(HttpMethod.POST, SERVICE_URL_GET_MAGIC)
.withBody(parseMagic(magicName))
.execute();
Avec stubbing (POST):
stubFor(post(urlEqualTo("/api/get-magic"))
.withRequestBody(equalToJson(magicNameParsed))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));
fonctionne correctement (httpResponse aura 200 OK).
Lorsque GET utiliser, il n'atteint pas l'appel api (httpResponse sera 404 non trouvé).
HttpResponse httpResponse = new DefaultHttpRequestBuilder(HttpMethod.GET, SERVICE_URL_GET_MAGIC)
.withBody(parseMagic(magicName))
.execute();
stubFor(get(urlEqualTo("/api/get-magic"))
.withRequestBody(equalToJson(magicNameParsed))
.willReturn(aResponse()
.withHeader("Content-Type", "application/json")
.withBody(magicDtoParsed)));
Désolé pour le stAbbing, il m'a montré la correction automatique et je suis juste suivi :) l'éditera. En ce qui concerne le corps dans la demande GET, j'ai réfléchi à ce sujet, et finalement découvert que c'est * ok * http://stackoverflow.com/questions/978061/http-get-with-request-body et, mon client * faire * Attendez-y. – Stas
Wow, je ne savais pas que c'était autorisé ... mais comme les gens l'ont mentionné, c'est une mauvaise idée et on finira par mentionner que ce n'est pas autorisé. Ma suggestion serait: faites-le bien, et supprimez le besoin d'avoir un corps. Personnellement, sur les quelques centaines d'API que j'ai utilisées, je n'ai jamais vu une requête GET nécessitant un corps. – Augusto
Oui. Aucun exemple du GET avec le contenu du corps. Bien que ce soit correct comme le lien dans le post précédent, j'utiliserai POST pour mes besoins. Merci. – Stas