1. 程式人生 > >HttpClient 的GET(帶引數)、POST請求方式,工具類方法

HttpClient 的GET(帶引數)、POST請求方式,工具類方法

/**
 * 連線/斷開操作 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);
}
        }
    }
}