1. 程式人生 > >HttpClient4 5 2呼叫示例(轉載+原創)

HttpClient4 5 2呼叫示例(轉載+原創)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

操作HttpClient時的一個工具類,使用是HttpClient4.5.2

package com.xxxx.charactercheck.utils;import java.io.File;import
java.io.IOException;import java.net.URL;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import
org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.ssl.DefaultHostnameVerifier;import org.apache.http.conn.util.PublicSuffixMatcher;import org.apache.http.conn.util.PublicSuffixMatcherLoader;import org.apache.http.entity.ContentType;import
org.apache.http.entity.StringEntity;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.entity.mime.content.FileBody;import org.apache.http.entity.mime.content.StringBody;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;public class HttpClientUtil private RequestConfig requestConfig = RequestConfig.custom()  .setSocketTimeout(15000)  .setConnectTimeout(15000)  .setConnectionRequestTimeout(15000)  .build();  private static HttpClientUtil instance = null;      private HttpClientUtil(){}      public static HttpClientUtil getInstance(){          if (instance == null) {              instance = new HttpClientUtil();          }          return instance;    }            /**      * 傳送 post請求      * @param httpUrl 地址      */      public String sendHttpPost(String httpUrl) {          HttpPost httpPost = new HttpPost(httpUrl);// 建立httpPost            return sendHttpPost(httpPost);      }            /**      * 傳送 post請求      * @param httpUrl 地址      * @param params 引數(格式:key1=value1&key2=value2)      */      public String sendHttpPost(String httpUrl, String params) {          HttpPost httpPost = new HttpPost(httpUrl);// 建立httpPost            try {              //設定引數              StringEntity stringEntity = new StringEntity(params, "UTF-8");              stringEntity.setContentType("application/x-www-form-urlencoded");              httpPost.setEntity(stringEntity);          } catch (Exception e) {              e.printStackTrace();          }          return sendHttpPost(httpPost);      }            /**      * 傳送 post請求      * @param httpUrl 地址      * @param maps 引數      */      public String sendHttpPost(String httpUrl, Map<String, String> maps) {          HttpPost httpPost = new HttpPost(httpUrl);// 建立httpPost            // 建立引數佇列            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();          for (String key : maps.keySet()) {              nameValuePairs.add(new BasicNameValuePair(key, maps.get(key)));          }          try {              httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));          } catch (Exception e) {              e.printStackTrace();          }          return sendHttpPost(httpPost);      }                  /**      * 傳送 post請求(帶檔案)      * @param httpUrl 地址      * @param maps 引數      * @param fileLists 附件      */      public String sendHttpPost(String httpUrl, Map<String, String> maps, List<File> fileLists) {          HttpPost httpPost = new HttpPost(httpUrl);// 建立httpPost            MultipartEntityBuilder meBuilder = MultipartEntityBuilder.create();          for (String key : maps.keySet()) {              meBuilder.addPart(key, new StringBody(maps.get(key), ContentType.TEXT_PLAIN));          }          for(File file : fileLists) {              FileBody fileBody = new FileBody(file);              meBuilder.addPart("files", fileBody);          }          HttpEntity reqEntity = meBuilder.build();          httpPost.setEntity(reqEntity);          return sendHttpPost(httpPost);      }            /**      * 傳送Post請求      * @param httpPost      * @return      */      private String sendHttpPost(HttpPost httpPost) {          CloseableHttpClient httpClient = null;          CloseableHttpResponse response = null;          HttpEntity entity = null;          String responseContent = null;          try {              // 建立預設的httpClient例項.              httpClient = HttpClients.createDefault();              httpPost.setConfig(requestConfig);              // 執行請求              response = httpClient.execute(httpPost);              entity = response.getEntity();              responseContent = EntityUtils.toString(entity, "UTF-8");          } catch (Exception e) {              e.printStackTrace();          } finally {              try {                  // 關閉連線,釋放資源                  if (response != null) {                      response.close();                  }                  if (httpClient != null) {                      httpClient.close();                  }              } catch (IOException e) {                  e.printStackTrace();              }          }          return responseContent;      }        /**      * 傳送 get請求      * @param httpUrl      */      public String sendHttpGet(String httpUrl) {          HttpGet httpGet = new HttpGet(httpUrl);// 建立get請求          return sendHttpGet(httpGet);      }            /**      * 傳送 get請求Https      * @param httpUrl      */      public String sendHttpsGet(String httpUrl) {          HttpGet httpGet = new HttpGet(httpUrl);// 建立get請求          return sendHttpsGet(httpGet);      }            /**      * 傳送Get請求      * @param httpPost      * @return      */      private String sendHttpGet(HttpGet httpGet) {          CloseableHttpClient httpClient = null;          CloseableHttpResponse response = null;          HttpEntity entity = null;          String responseContent = null;          try {              // 建立預設的httpClient例項.              httpClient = HttpClients.createDefault();              httpGet.setConfig(requestConfig);              // 執行請求              response = httpClient.execute(httpGet);              entity = response.getEntity();              responseContent = EntityUtils.toString(entity, "UTF-8");          } catch (Exception e) {              e.printStackTrace();          } finally {              try {                  // 關閉連線,釋放資源                  if (response != null) {                      response.close();                  }                  if (httpClient != null) {                      httpClient.close();                  }              } catch (IOException e) {                  e.printStackTrace();              }          }          return responseContent;      }            /**      * 傳送Get請求Https      * @param httpPost      * @return      */      private String sendHttpsGet(HttpGet httpGet) {          CloseableHttpClient httpClient = null;          CloseableHttpResponse response = null;          HttpEntity entity = null;          String responseContent = null;          try {              // 建立預設的httpClient例項.              PublicSuffixMatcher publicSuffixMatcher = PublicSuffixMatcherLoader.load(new URL(httpGet.getURI().toString()));              DefaultHostnameVerifier hostnameVerifier = new DefaultHostnameVerifier(publicSuffixMatcher);              httpClient = HttpClients.custom().setSSLHostnameVerifier(hostnameVerifier).build();              httpGet.setConfig(requestConfig);              // 執行請求              response = httpClient.execute(httpGet);              entity = response.getEntity();              responseContent = EntityUtils.toString(entity, "UTF-8");          } catch (Exception e) {              e.printStackTrace();          } finally {              try {                  // 關閉連線,釋放資源                  if (response != null) {                      response.close();                  }                  if (httpClient != null) {                      httpClient.close();                  }              } catch (IOException e) {                  e.printStackTrace();              }          }          return responseContent;      }}


呼叫例子

@ResponseBody @RequestMapping(value = "/check"public String check(   Model model,   HttpServletRequest request,   HttpServletResponse response,   String content) {  try {   String httpUrl = ExtendedServerConfig.getInstance().getStringProperty("httpUrl");   Map<String, String> maps = new HashMap<String, String>();   maps.put("content", content);   maps.put("reserve_tag", ExtendedServerConfig.getInstance().getStringProperty("reserve_tag"));   maps.put("user_key", ExtendedServerConfig.getInstance().getStringProperty("user_key"));   maps.put("check_level", ExtendedServerConfig.getInstance().getStringProperty("check_level"));   return HttpClientUtil.getInstance().sendHttpPost(httpUrl, maps);  } catch (Exception e) {   e.printStackTrace();  }  return null; }


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述