大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

互聯網P2P金融項目
互聯網P2P金融項目架構搭建
互聯網P2P金融項目業務功能

HttpClient使用

參看httpclient項目代碼

Java原生API

代碼實現

/**
 * GET請求
 * @param httpUrl
 * @return
 */
public static String doGet(String httpUrl) {
   HttpURLConnection connection = null;
   InputStream is = null;
   BufferedReader br = null;
   String result = null;//返回結果字符串
   
   try {
      //創建遠程url連接對象
      URL url = new URL(httpUrl);
      //通過遠程url連接對象打開一個連接,強轉成httpURLConnection類
      connection = (HttpURLConnection) url.openConnection();
      //設置連接方式:get
      connection.setRequestMethod("GET");
      //設置連接主機服務器的超時時間:15000毫秒
      connection.setConnectTimeout(15000);
      //設置讀取遠程返回的數據時間:60000毫秒
      connection.setReadTimeout(60000);
      
      //通過connection連接,獲取輸入流
      is = connection.getInputStream();
      //封裝輸入流is,并指定字符集
      br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
      
      //存放數據
      StringBuffer sbf = new StringBuffer();
      String temp = null;
      while ((temp = br.readLine()) != null) {
         sbf.append(temp);
         sbf.append("\r\n");//回車+換行
      }
      
      result = sbf.toString();
      
   } catch (Exception e) {
      e.printStackTrace();
   } finally {
      //關閉資源
      if(null != br) {
         try {
            br.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      if(null != is) {
         try {
            is.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      connection.disconnect();//關閉遠程連接
   }
   
   return result;
}


/**
 * POST 請求
 * @param httpUrl
 * @param param
 * @return
 */
public static String doPost(String httpUrl, String param) {
   HttpURLConnection connection = null;
   InputStream is = null;
   OutputStream os = null;
   BufferedReader br = null;
   String result = null;
   
   try {
      //創建遠程url連接對象
      URL url = new URL(httpUrl);
      //通過遠程url連接對象打開連接
      connection = (HttpURLConnection) url.openConnection();
      //設置連接請求方式
      connection.setRequestMethod("POST");
      //設置連接主機服務器超時時間:15000毫秒
      connection.setConnectTimeout(15000);
      //設置讀取主機服務器返回數據超時時間:60000毫秒
      connection.setReadTimeout(60000);
      
      //默認值為:false,當向遠程服務器傳送數據/寫數據時,需要設置為true
      connection.setDoOutput(true);
      //默認值為:true,當前向遠程服務讀取數據時,設置為true,該參數可有可無
      connection.setDoInput(true);
      
      //通過連接對象獲取一個輸出流
      os = connection.getOutputStream();
      //通過輸出流對象將參數寫出去/傳輸出去,它是通過字節數組寫出的
      os.write(param.getBytes());//把需要傳送的參數發送給遠程url
      
      //通過連接對象獲取一個輸入流,向遠程讀取
      is = connection.getInputStream();
      //對輸入流對象進行包裝
      br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
      
      StringBuffer sbf = new StringBuffer();
      String temp = null;
      //循環遍歷一行一行讀取數據
      while ((temp = br.readLine()) != null) {
         sbf.append(temp);
         sbf.append("\r\n");
      }
      
      result = sbf.toString();
      
      
      
   } catch (Exception e) {
      e.printStackTrace();
   } finally {
      //關閉資源
      if(null != br) {
         try {
            br.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      if(null != os) {
         try {
            os.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      if(null != is) {
         try {
            is.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      //斷開與遠程地址url的連接
      connection.disconnect();
   }
   return result;
}

HttpClient 3.1

⒈ 添加依賴

<!-- httpclient3.1版本 -->
<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>

⒉ 代碼實現

/**
 * GET 請求方法
 * 注:如果需要傳遞參數,把參數拼接在url地址后面
 * @param url
 */
public static String doGet(String url) {
   //輸入流
   InputStream is = null;
   BufferedReader br = null;
   String result = null;
   
   //創建httpClient實例
   HttpClient httpClient = new HttpClient();
   
   //設置http連接主機服務超時時間:15000毫秒
   //先獲取連接管理器對象,再獲取參數對象,再進行參數的賦值
   httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
   
   //創建一個Get方法實例對象
   GetMethod getMethod = new GetMethod(url);
   //設置get請求超時為60000毫秒
   getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
   //設置請求重試機制,默認重試次數:3次,參數設置為true,重試機制可用,false相反
   getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(1, true));

      
   try {
      //執行Get方法
      int statusCode = httpClient.executeMethod(getMethod);
      //判斷返回碼
      if(statusCode != HttpStatus.SC_OK) {
         //如果狀態碼返回的不是ok,說明失敗了,打印錯誤信息
         System.err.println("Method faild: " + getMethod.getStatusLine());
      }
      
      //通過getMethod實例,獲取遠程的一個輸入流
      is = getMethod.getResponseBodyAsStream();
      //包裝輸入流
      br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
      
      StringBuffer sbf = new StringBuffer();
      //讀取封裝的輸入流
      String temp = null;
      while ((temp = br.readLine()) != null) {
         sbf.append(temp).append("\r\n");
      }
      
      result = sbf.toString();
      
   } catch (Exception e) {
      System.err.println("Fatal protocol violation: " + e.getMessage());
      e.printStackTrace();
   } finally {
      //關閉資源
      if(null != br) {
         try {
            br.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      if(null != is) {
         try {
            is.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      //釋放連接
      getMethod.releaseConnection();
   }
      
   return result;
}

/**
 * POST 請求方法
 * @param url
 * @param paramMap
 * @return
 * @throws UnsupportedEncodingException 
 */
public static String doPost(String url, Map<String,Object> paramMap) throws UnsupportedEncodingException {
   //獲取輸入流
   InputStream is = null;
   BufferedReader br = null;
   String result = null;
   
   //創建httpClient實例對象
   HttpClient httpClient = new HttpClient();
   //設置httpClient連接主機服務器超時時間:15000毫秒
   httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
   
   //創建post請求方法實例對象
   PostMethod postMethod = new PostMethod(url);
   //設置post請求超時時間
   postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
   
   NameValuePair[] nvp = null;
   //判斷參數map集合paramMap是否為空
   if(null != paramMap && paramMap.size() > 0) {//不為空
      //創建鍵值參數對象數組,大小為參數的個數
      nvp = new NameValuePair[paramMap.size()];
      //循環遍歷參數集合map
      Set<Entry<String, Object>> entrySet = paramMap.entrySet();
      //獲取迭代器
      Iterator<Entry<String, Object>> iterator = entrySet.iterator();
      
      int index = 0;
      while(iterator.hasNext()) {
         Entry<String, Object> mapEntry = iterator.next();
         //從mapEntry中獲取key和value創建鍵值對象存放到數組中
         nvp[index] = new NameValuePair(mapEntry.getKey(), new String(mapEntry.getValue().toString().getBytes("UTF-8"),"UTF-8"));
         index++;
      }
   }
   
   //判斷nvp數組是否為空
   if(null != nvp && nvp.length > 0) {
      //將參數存放到requestBody對象中
      postMethod.setRequestBody(nvp);
   }
      
   try {
      //執行POST方法
      int statusCode = httpClient.executeMethod(postMethod);
      //判斷是否成功
      if(statusCode != HttpStatus.SC_OK) {
         System.err.println("Method faild: " + postMethod.getStatusLine());
      }
      
      //獲取遠程返回的數據
      is = postMethod.getResponseBodyAsStream();
      //封裝輸入流
      br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
      
      StringBuffer sbf = new StringBuffer();
      String temp = null;
      while ((temp = br.readLine()) != null) {
         sbf.append(temp).append("\r\n");
      }
      
      result = sbf.toString();
      
   } catch (Exception e) {
      System.err.println("Fatal protocol violation: " + e.getMessage());
      e.printStackTrace();
   } finally {
      
      //關閉資源
      if(null != br) {
         try {
            br.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      if(null != is) {
         try {
            is.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
      
      //釋放連接
      postMethod.releaseConnection();
   }  
   return result;
}

HttpClient 4.5

⒈ 添加依賴

<!-- httpclient4.5版本 -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.3</version>
</dependency>

⒉ 代碼實現

/**
 * Get 請求方法
 *
 * @param url
 * @return
 */
public static String doGet(String url) {
   CloseableHttpClient httpClient = null;
   CloseableHttpResponse response = null;
   String result = "";

   try {
      //通過址默認配置創建一個httpClient實例
      httpClient = HttpClients.createDefault();
      //創建httpGet遠程連接實例
      HttpGet httpGet = new HttpGet(url);
      //設置配置請求參數
      RequestConfig requestConfig = RequestConfig.custom()
            .setConnectTimeout(35000)//連接主機服務超時時間
            .setConnectionRequestTimeout(35000)//請求超時時間
            .setSocketTimeout(60000)//數據讀取超時時間
            .build();
      //為httpGet實例設置配置
      httpGet.setConfig(requestConfig);
      //執行get請求得到返回對象
      response = httpClient.execute(httpGet);
      //通過返回對象獲取返回數據
      HttpEntity entity = response.getEntity();
      //通過EntityUtils中的toString方法將結果轉換為字符串
      result = EntityUtils.toString(entity);

   } catch (Exception e) {
      e.printStackTrace();
   } finally {
      //關閉資源
      if (null != response) {
         try {
            response.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }

      if (null != httpClient) {
         try {
            httpClient.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
   }

   return result;
}

public static String doPost(String url, Map<String, Object> paramMap) {
   CloseableHttpClient httpClient = null;
   CloseableHttpResponse response = null;
   String result = "";

   try {
      //創建httpClient實例
      httpClient = HttpClients.createDefault();
      //創建httpPost遠程連接實例
      HttpPost httpPost = new HttpPost(url);
      //配置請求參數實例
      RequestConfig requestConfig = RequestConfig.custom()
            .setConnectTimeout(35000)//設置連接主機服務超時時間
            .setConnectionRequestTimeout(35000)//設置連接請求超時時間
            .setSocketTimeout(60000)//設置讀取數據連接超時時間
            .build();
      //為httpPost實例設置配置
      httpPost.setConfig(requestConfig);

      //封裝post請求參數
      if (null != paramMap && paramMap.size() > 0) {
         List<NameValuePair> nvps = new ArrayList<NameValuePair>();
         //通過map集成entrySet方法獲取entity
         Set<Entry<String, Object>> entrySet = paramMap.entrySet();
         //循環遍歷,獲取迭代器
         Iterator<Entry<String, Object>> iterator = entrySet.iterator();
         while (iterator.hasNext()) {
            Entry<String, Object> mapEntry = iterator.next();
            nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
         }

         //為httpPost設置封裝好的請求參數
         httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
      }

      //執行post請求得到返回對象
      response = httpClient.execute(httpPost);
      //通過返回對象獲取數據
      HttpEntity entity = response.getEntity();
      //將返回的數據轉換為字符串
      result = EntityUtils.toString(entity);
   } catch (Exception e) {
      e.printStackTrace();
   } finally {
      //關閉資源
      if (null != response) {
         try {
            response.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }

      if (null != httpClient) {
         try {
            httpClient.close();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
   }
   return result;
}

 

全部教程
主站蜘蛛池模板: 黄色视屏在线免费观看 | 中文字幕观看 | 久久综合给合久久狠狠狠色97 | 精品久久久99大香线蕉 | 四虎影视永久免费观看地址 | 久久lu| 亚洲精品一区久久狠狠欧美 | 欧美夜色| 91香蕉嫩草 | 国产综合婷婷 | 日韩欧美一级毛片在线 | 久久久夜间小视频 | 中文字幕综合久久久久 | 九九热精品视频在线 | 欧美最猛的24k毛片视频 | 欧美中文综合在线视频 | 中文字幕日韩精品中文区 | 久久精品国产精品青草图片 | 天天狠操| 国产青色 | 免费在线观看一级片 | 97影院理论在线观看 | 中文字幕美日韩在线高清 | 午夜国产福利在线 | 久久99精品久久久久久久不卡 | 国产真实偷乱视频在线观看 | 亚洲区视频 | 免费澳门一级毛片 | 欧美日韩一区二区高清免费视频 | 国产亚洲欧美另类久久久 | 午夜久久久精品 | 欧美一级特黄毛片免费 | 亚洲综合久久久 | 久99频这里只精品23热 视频 | 中文字幕热久久久久久久 | 国产精品一级香蕉一区 | 免费超级淫片日本高清视频 | 亚洲国产精品xo在线观看 | 亚洲视频免费在线观看 | 99看片网| 女性一级全黄生活片免费看 |