java - 如何在带有请求正文的请求上使用getPage()?

标签 java error-handling http-post htmlunit

在工作中,我使用的是HtmlUnit 2.8版,我遇到了这种卡夫卡式的情况:

我有一个具有主体的WebRequest,因此没有请求参数:当请求主体不是WebRequest.setRequestParameters()时使用null会抛出:

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

(来源可用here)

但是,当我使用webClient.getPage(webRequest)时,我得到:
java.lang.NullPointerException: parameters

(来源here)

该消息非常冗长,意味着为请求参数使用null是不正确的。

有没有办法解决这个问题,或者绕过它?最好使用相同的版本(再次是2.8),因为我无权升级我们使用的框架。

最佳答案

好吧,默认构造函数默认将请求的参数初始化为Collections.emptyList(),因此不会导致NullPointerException。

造成我异常的原因是,在我打电话之前有几行

request.setRequestParameters(null);

这显然是造成我问题的原因。

我删除了该行,现在它可以按预期运行。

关于java - 如何在带有请求正文的请求上使用getPage()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45866479/

相关文章:

php - 抑制 php 中的 2048 错误

apache-kafka - 重试Deadly Queue for Kafka中的消息的最佳实践是什么

typescript - fp-ts在mapLeft内部调用异步函数

java - PUT 和 POST - 参数相同,但 PUT 请求错误

java - 在 Java 应用程序中创建 session

java - Hbase 客户端 API 未连接到 Hbase

ajax - Extjs 4(下面有3.4的代码)下载从post请求返回的文件

java - 无法从 HttpClient 向 Servlet doPost 方法发送请求

java - 如何在NT3H2111 nfc芯片上选择扇区

java - 示例 SyncService 中 sSyncAdapterLock 的用途是什么?