2017-08-24 3 views
0

Au travail, je me sers version HtmlUnit 2.8, et je suis venu à cette situation kafkaïen:Comment utiliser getPage() sur une requête avec un corps de requête?

J'ai un WebRequest qui a un corps, donc aucun paramètre de demande: à l'aide WebRequest.setRequestParameters() lorsque le corps de la demande n'est pas null lancers francs a:

java.lang.RuntimeException: Trying to set the request parameters, but the request body has already been specified;the two are mutually exclusive! 

(source disponible here)

Cependant, quand je l'utilise webClient.getPage(webRequest), je reçois:

java.lang.NullPointerException: parameters 

(source here)

Ce message a vraiment bavard ce qui signifie que ce n'est pas OK d'avoir null pour les paramètres de demande.

Y at-il un moyen de résoudre ce problème ou de le contourner? De préférence en utilisant la même version (encore une fois, 2.8), car je n'ai pas le droit de mettre à jour les frameworks que nous utilisons.

+0

moment où vous devez choisir entre une exception NullPointerException ou une exception RuntimException ... Un tel dilemme – joH1

Répondre

0

Bien que le constructeur par défaut initialise par défaut les paramètres de la requête à Collections.emptyList(), il ne provoquera pas l'exception NullPointerException.

Que a fait la cause de mon exception cependant, était que quelques lignes avant appelé

request.setRequestParameters(null); 

qui était de toute évidence la cause de mon problème. J'ai retiré cette ligne et maintenant cela fonctionne comme prévu.