1 package com.ming; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 import java.io.OutputStreamWriter; 6 import java.io.PrintWriter; 7 import java.net.HttpURLConnection; 8 import java.net.URL; 9 import java.util.Map; 10 11 12 public class HttpBaseUtil { 13 14 15 /** 16 * 向指定的url发送post方法,并获取放回值 17 * @param url 发送的url 18 * @param param 发送的参数 参数形式a=2&b=2 19 * @param head 请求头设定 20 */ 21 public static String sendPostUrl(String url,String param,Map<String, String> head) throws Exception{ 22 StringBuffer result=new StringBuffer(); 23 PrintWriter out =null; 24 BufferedReader in=null; 25 try { 26 URL realUrl = new URL(url); 27 // 打开和URL之间的连接 28 HttpURLConnection conn =(HttpURLConnection)realUrl.openConnection(); 29 // 设置通用的请求属性 30 conn.setRequestProperty("accept", "*/*"); 31 conn.setRequestProperty("connection", "Keep-Alive"); 32 conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); 33 if(head!=null && !head.isEmpty()){ 34 for (String key:head.keySet()){ 35 conn.setRequestProperty(key, head.get(key)); 36 } 37 } 38 conn.setDoOutput(true); 39 conn.setDoInput(true); 40 // 获取URLConnection对象对应的输出流 41 out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8")); 42 // 发送请求参数 43 out.print(param); 44 // flush输出流的缓冲 45 out.flush(); 46 // 定义BufferedReader输入流来读取URL的响应 47 in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); 48 String line; 49 while ((line = in.readLine()) != null) { 50 result.append(line); 51 } 52 } catch (Exception e) { 53 throw new Exception("发送post出现异常."+e.getMessage()); 54 } 55 return result.toString(); 56 } 57 58 }
1 import org.apache.http.HttpResponse; 2 import org.apache.http.client.ClientProtocolException; 3 import org.apache.http.client.HttpClient; 4 import org.apache.http.client.ResponseHandler; 5 import org.apache.http.client.methods.HttpUriRequest; 6 7 import java.io.IOException; 8 9 public class LocalHttpClient { 10 11 private static LocalHttpClient localHttpClient; 12 protected HttpClient httpClient; 13 14 private static int maxTotal = 100; 15 private static int maxPerRoute = 10; 16 public static void init(int maxTotal,int maxPerRoute){ 17 LocalHttpClient.maxTotal = maxTotal; 18 LocalHttpClient.maxPerRoute = maxPerRoute; 19 } 20 21 public static LocalHttpClient getInstance(){ 22 if(localHttpClient != null){ 23 return localHttpClient; 24 }else{ 25 localHttpClient = new LocalHttpClient(); 26 if(maxTotal > 0){ 27 localHttpClient.httpClient = HttpClientFactory.createHttpClient(maxTotal,maxPerRoute); 28 }else{ 29 localHttpClient.httpClient = HttpClientFactory.createHttpClient(); 30 } 31 return localHttpClient; 32 } 33 } 34 35 public HttpResponse execute(HttpUriRequest request){ 36 try { 37 return httpClient.execute(request); 38 } catch (ClientProtocolException e) { 39 e.printStackTrace(); 40 } catch (IOException e) { 41 e.printStackTrace(); 42 } 43 return null; 44 } 45 46 public <T> T execute(HttpUriRequest request,ResponseHandler<T> responseHandler){ 47 try { 48 return httpClient.execute(request, responseHandler); 49 } catch (ClientProtocolException e) { 50 e.printStackTrace(); 51 } catch (IOException e) { 52 e.printStackTrace(); 53 } 54 return null; 55 } 56 }