HttpClient 4.3 과 4.3 버 전 이하 버 전 비교

3318 단어 자바httpclient
인터넷 에서 자 바 를 이용 하여 http 요청 을 보 내 는 코드 가 매우 많 습 니 다. 한 번 검색 해 보면 자바. net. * 의 HttpURLConnection 을 이용 하 는 경우 도 있 고 httpclient 를 사용 하 는 경우 도 있 으 며 보 내 는 코드 도 종류 가 있 습 니 다.오늘 우리 가 주로 말 하 는 것 은 httpclient 를 이용 하여 요청 을 보 내 는 것 이다.
httpclient
  • httpclient3.x
  • httpclient 4. x 에서 httpclient 4.3 이하
  • httpclient 4.3 이상
  • httpclient 버 전에 따라 요청 전송 방식 도 다 릅 니 다. 다음은 요약 하 겠 습 니 다.
     
    httpclient3.x
    		HttpClient client = new HttpClient();
    		//             
    		// client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);
    		//    GET    ,          HTTPS   ,        URL    http    https
    		HttpMethodmethod = new GetMethod("http://java.sun.com");
    		//   POST  
    		// HttpMethod method = new PostMethod("http://java.sun.com");
    		client.executeMethod(method);
    		//           
    		System.out.println(method.getStatusLine());
    		//        
    		System.out.println(method.getResponseBodyAsString());
    		//     
    		method.releaseConnection();

     
     
    httpclient 4. x 에서 httpclient 4.3 이하
     
    public void getUrl(String url, String encoding) throws ClientProtocolException, IOException {
    		HttpClient client = new DefaultHttpClient();
    		HttpGet get = new HttpGet(url);
    		HttpResponse response = client.execute(get);
    		HttpEntity entity = response.getEntity();
    		if (entity != null) {
    			InputStream instream = entity.getContent();
    			try {
    				BufferedReader reader = new BufferedReader(new InputStreamReader(instream, encoding));
    				System.out.println(reader.readLine());
    			} catch (Exception e) {
    				e.printStackTrace();
    			} finally {
    				instream.close();
    			}
    		}
    		//     .
    		client.getConnectionManager().shutdown();
    	}

     
     
     
    httpclient 4.3 이상
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    
    public static String getResult(String urlStr) {
    		CloseableHttpClient httpClient = HttpClients.createDefault();
    		// HTTP Get  
    		HttpGet httpGet = new HttpGet(urlStr);
    		//            
    		// RequestConfig requestConfig =
    		// RequestConfig.custom().setSocketTimeout(TIME_OUT).setConnectTimeout(TIME_OUT).build();
    		// httpGet.setConfig(requestConfig);
    		String res = "";
    		try {
    			//     
    			HttpResponse getAddrResp = httpClient.execute(httpGet);
    			HttpEntity entity = getAddrResp.getEntity();
    			if (entity != null) {
    				res = EntityUtils.toString(entity);
    			}
    			log.info("  " + getAddrResp.getStatusLine());
    		} catch (Exception e) {
    			log.error(e.getMessage(), e);
    			return res;
    		} finally {
    			try {
    				httpClient.close();
    			} catch (IOException e) {
    				log.error(e.getMessage(), e);
    				return res;
    			}
    		}
    		return res;
    	}

     

    좋은 웹페이지 즐겨찾기