我使用发送关键字作为参数的HTMLUnit发送POST请求。该URL的一个例子是:使用HTMLUnit发送带有多个关键字作为参数的POST请求
website.com/foo/bar/api?keywords=word1,word2,word3&language=en
问题是我的应用程序动态地选择这些字和词的量可以高达10或20个甚至更多。如何将一组字作为值添加到HTTP请求中。我的代码目前是:
requestSettings = new WebRequest(new URL("website.com/foo/bar/api?"),
HttpMethod.POST);
Iterator itr = list.iterator();
while(itr.hasNext()) {
requestSettings.getRequestParameters()
.add(new NameValuePair("keywords[]", itr.next()));
}
requestSettings.getRequestParameters().add(new NameValuePair("language", "en"));
System.out.println(requestSettings.getUrl().toString());
response = webClient.getPage(requestSettings).getWebResponse();
此代码不会返回有效的答复。我在这里做错了什么?
+0
您需要使用WebRequest.setRequestBody()。除此之外,服务器可能需要其他标题,例如, Referer的。请检查HtmlUnit发送的头文件与真实浏览器发送的头文件。您也可以提供特定的URL大小写,以便其他人可以重现您的问题 –