- map存放请求参数
Map<String, String> paramMap = new HashMap<String,String>();
paramMap.put("dbcode","fsyd");
paramMap.put("rowcode","reg");
paramMap.put("colcode","sj");
paramMap.put("wds","[{\"wdcode\":\"zb\",\"valuecode\":\""+ paramStr + "\"}]");
paramMap.put("dfwds","[]");
- 声明一个WebClient
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.getOptions().setTimeout(240000);
- 用HtmlUnit的NameValuePair取出map中的请求参数
List<NameValuePair> requestParameters = new ArrayList<NameValuePair>();
for (String key : paramMap.keySet()) {
NameValuePair valuePair = new NameValuePair(key, paramMap.get(key));
requestParameters.add(valuePair);
}
- 带参数请求URL
URL link = new URL(HTTP_URL);
WebRequest request = new WebRequest(link, HttpMethod.POST);
request.setCharset("utf-8");
request.setRequestParameters(requestParameters);
WebResponse response = webClient.loadWebResponse(request);
- 用JSONArray接受响应的数据
String resString = response.getContentAsString();
JSONObject jsonObject = JSON.parseObject(resString);
JSONObject returnDataJson = jsonObject.getJSONObject("returndata");
JSONArray jsonArray = returnDataJson.getJSONArray("datanodes");