/** * 连接/断开操作 post方式 * @param url * @param json */private boolean connOrDisconnOperator(String url,String json){ ???CloseableHttpClient client = null; ???CloseableHttpResponse response = null; ???boolean flag = false; ???try{ ???????HttpPost httpPost = new HttpPost(url); ???????RequestConfig requestConfig = RequestConfig.custom() ???????????????.setConnectTimeout(50000) ???????????????.setSocketTimeout(50000) ???????????????.setConnectionRequestTimeout(120000).build(); ???????httpPost.setConfig(requestConfig); ???????List<BasicNameValuePair> list = Lists.newArrayListWithExpectedSize(1); ???????list.add(new BasicNameValuePair("json",json)); ???????httpPost.setEntity(new UrlEncodedFormEntity(list)); ???????client = HttpClients.createDefault(); ???????response = client.execute(httpPost); ???????if(response.getStatusLine().getStatusCode() == 200){ ???????????InputStream is = response.getEntity().getContent(); ???????????Map<String,Object> m = new ObjectMapper().readValue(StringUtil.getString(is),Map.class); ???????????String strState = m.get("state").toString(); ???????????if("SUCCESS".equals(strState)){ ???????????????flag = true; ???????????} ???????}else{ ???????????log.error(this.getClass(), "connOrDisconnOperator method fail:" + response.getStatusLine().getStatusCode()); ???????} ???}catch (Exception ex){ ???????log.error(this.getClass(), "connOrDisconnOperator method error",ex); ???}finally { ???????if(response != null){ ???????????try { ???????????????response.close(); ???????????} catch (IOException ex) { ???????????????log.error(this.getClass(), "close response method error", ex); ???????????} ???????} ???????if(client != null){ ???????????try { ???????????????client.close(); ???????????} catch (IOException ex) { ???????????????log.error(this.getClass(), "close client method", ex); ???????????} ???????} ???} ???return flag;}
// get方式public Optional<Map<String,Object>> connOrDisconnOperator(String atisAirPortCode, String url) { ???CloseableHttpClient client = null; ???CloseableHttpResponse response = null; ???try{ ???????HttpGet httpGet = new HttpGet(url + "?airportCode=" +atisAirPortCode); ???????RequestConfig requestConfig = RequestConfig.custom() ???????????????.setSocketTimeout(5000) ???????????????.setConnectTimeout(5000) ???????????????.setConnectionRequestTimeout(120000).build(); ???????httpGet.setConfig(requestConfig); ???????client = HttpClients.createDefault(); ???????response = client.execute(httpGet); ???????if(response.getStatusLine().getStatusCode() == 200 || response.getStatusLine().getStatusCode() == 500){ ???????????Map<String,Object> map = Maps.newHashMapWithExpectedSize(4); ???????????InputStream is = response.getEntity().getContent(); ???????????JsonNode jn = new ObjectMapper().readTree(StringUtil.getString(is)); ???????????// 解析返回结果 ???????????String result = jn.get("state").asText(); ???????????if (result.equals("SUCCESS")) { ???????????????System.out.println("-----------------------------成功"); ???????????} else { ???????????????System.out.println("-----------------------------失败"); ???????????} ???????????return Optional.of(map); ???????}else{ ???????????return Optional.absent(); ???????} ???}catch (Exception ex) { ???????log.error(this.getClass(), "getOSInfo() error", ex); ???????return Optional.absent(); ???}finally { ???????if(response != null){ ???????????try { ???????????????response.close(); ???????????} catch (IOException ex) { ???????????????log.error(this.getClass(), "close IO error", ex); ???????????} ???????} ???????if(client != null){ ???????????try { ???????????????client.close(); ???????????} catch (IOException ex) { ???????????????log.error(this.getClass(),"close IO error",ex); ???????????} ???????} ???}}
HttpClient 的GET(带参数)、POST请求方式,工具类方法
原文地址:http://www.cnblogs.com/javaBoy666/p/7918732.html