Java-Http
1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.IOException; 4 import java.io.InputStreamReader; 5 import java.io.OutputStreamWriter; 6 import java.net.HttpURLConnection; 7 import java.net.MalformedURLException; 8 import java.net.URL; 9 10 /** 11 * HttpURLConnection 12 */ 13 public class TestPost { 14 public static void main(String[] args) { 15 try { 16 URL url = new URL(""); 17 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 18 connection.setRequestProperty("encoding", "UTF-8"); 19 connection.setRequestMethod("POST"); 20 connection.setDoInput(true); 21 connection.setDoOutput(true); 22 //根据连接对象创建输出流 将参数写入 23 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream())); 24 bw.write("name=zhangsan&age=25"); 25 bw.flush(); 26 //创建输入流 获取响应数据 27 BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); 28 String str; 29 StringBuffer sb = new StringBuffer(); 30 while((str = br.readLine())!=null) { 31 sb.append(str); 32 } 33 bw.close(); 34 br.close(); 35 } catch (MalformedURLException e) { 36 e.printStackTrace(); 37 } catch (IOException e) { 38 e.printStackTrace(); 39 } 40 } 41 }
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.net.MalformedURLException; 5 import java.net.URL; 6 import java.net.URLConnection; 7 8 /** 9 * URLConnection
10 */ 11 public class TestGet { 12 public static void main(String[] args) { 13 try { 14 URL url = new URL("https://www.baidu.com"); 15 //打开连接 16 URLConnection openConnection = url.openConnection(); 17 //获取连接中的输入流openConnection.getInputStream()返回字节流,通过转成字符流并包装一个缓冲流 18 BufferedReader br = new BufferedReader( 19 new InputStreamReader(openConnection.getInputStream())); 20 String str; 21 StringBuffer sb = new StringBuffer(); 22 while((str = br.readLine())!=null) { 23 sb.append(str); 24 } 25 System.out.println(sb); 26 br.close(); 27 } catch (MalformedURLException e) { 28 e.printStackTrace(); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 } 32 } 33 }
1 import java.io.IOException; 2 import org.apache.http.HttpEntity; 3 import org.apache.http.HttpResponse; 4 import org.apache.http.client.ClientProtocolException; 5 import org.apache.http.client.HttpClient; 6 import org.apache.http.client.methods.HttpGet; 7 import org.apache.http.impl.client.HttpClients; 8 import org.apache.http.util.EntityUtils; 9 10 /** 11 * HttpGet 12 */ 13 public class HttpClientGetTest { 14 public static void main(String[] args) { 15 HttpClient client = HttpClients.createDefault(); 16 try { 17 HttpGet get = new HttpGet("http://www.baidu.com"); 18 HttpResponse response = client.execute(get); 19 HttpEntity entity = response.getEntity(); 20 String result = EntityUtils.toString(entity,"UTF-8"); 21 22 System.out.println(result); 23 } catch (ClientProtocolException e) { 24 e.printStackTrace(); 25 } catch (IOException e) { 26 e.printStackTrace(); 27 } 28 } 29 }
1 import java.io.IOException; 2 import java.util.ArrayList; 3 import java.util.List; 4 5 import org.apache.http.HttpEntity; 6 import org.apache.http.HttpResponse; 7 import org.apache.http.client.ClientProtocolException; 8 import org.apache.http.client.HttpClient; 9 import org.apache.http.client.entity.UrlEncodedFormEntity; 10 import org.apache.http.client.methods.HttpPost; 11 import org.apache.http.impl.client.HttpClients; 12 import org.apache.http.message.BasicNameValuePair; 13 import org.apache.http.util.EntityUtils; 14 15 /** 16 * HttpPost 17 */ 18 public class HttpClientPostTest { 19 public static void main(String[] args) { 20 try { 21 HttpClient client = HttpClients.createDefault(); 22 HttpPost post = new HttpPost("http://www.baidu.com"); 23 //参数集合 24 List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>(); 25 //添加数据 26 parameters.add(new BasicNameValuePair("name", "zhangsan")); 27 //将参数放到实体中 28 post.setEntity(new UrlEncodedFormEntity(parameters)); 29 //设置请求方式 30 HttpResponse response = client.execute(post); 31 HttpEntity entity = response.getEntity(); 32 String result = EntityUtils.toString(entity,"UTF-8"); 33 //打印响应信息 34 System.out.println(result); 35 } catch (ClientProtocolException e) { 36 e.printStackTrace(); 37 } catch (IOException e) { 38 e.printStackTrace(); 39 } 40 } 41 }
1 <!-- httpclient --> 2 <dependency> 3 <groupId>org.apache.httpcomponents</groupId> 4 <artifactId>httpclient</artifactId> 5 <version>4.5.5</version> 6 </dependency>
1 import java.io.IOException; 2 3 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpStatus; 5 import org.apache.http.client.CookieStore; 6 import org.apache.http.client.config.RequestConfig; 7 import org.apache.http.client.methods.CloseableHttpResponse; 8 import org.apache.http.client.methods.HttpGet; 9 import org.apache.http.client.methods.HttpPost; 10 import org.apache.http.client.methods.HttpRequestBase; 11 import org.apache.http.entity.StringEntity; 12 import org.apache.http.impl.client.BasicCookieStore; 13 import org.apache.http.impl.client.CloseableHttpClient; 14 import org.apache.http.impl.client.HttpClients; 15 import org.apache.http.util.EntityUtils; 16 /** 17 * @ClassName: HttpReqUtil 18 * @Description: http请求工具类 19 */ 20 public class HttpReqUtil { 21 22 private static CookieStore cookieStore = new BasicCookieStore(); 23 /** 24 * @Title: httpReqConfig 25 * @Description: 请求配置 26 * @param httpRequestBase 27 * @return void 返回类型 28 * @throws 29 */ 30 public static void httpReqConfig(HttpRequestBase httpRequestBase) { 31 // header配置 32 httpRequestBase.setHeader("User-Agent", "Mozilla/5.0"); 33 httpRequestBase.setHeader("Accept", "*/*"); 34 httpRequestBase.setHeader("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3"); 35 httpRequestBase.setHeader("Accept-Encoding", "gzip, deflate"); 36 37 // 请求超时设置 38 RequestConfig config = RequestConfig.custom() //获取Builder对象 39 .setConnectionRequestTimeout(20000) //设置请求超时时间 40 .build(); //构建RequestConfig对象 41 42 httpRequestBase.setConfig(config); //将RequestConfig添加到请求中 43 } 44 45 /** 46 * @Title: sendGet 47 * @Description: 发送get请求 48 * @param url 49 * @param param 50 * @return String 返回类型 51 * @throws 52 */ 53 public static String sendGet(String url, String param) { 54 55 // 初始化 56 String result = null; 57 CloseableHttpResponse response = null; 58 String finalUrl = url + "?" + param; 59 // 创建httpclient 60 CloseableHttpClient httpclient = HttpClients.custom() 61 //请求中cookie由cookie管理,存储第一次登陆后服务器返回的cookie,之后登陆后的请求都带上该cookie 62 .setDefaultCookieStore(cookieStore) 63 .build(); 64 65 try { 66 // 发送get请求+header 67 HttpGet httpGet = new HttpGet(finalUrl); 68 69 // 添加header 70 httpReqConfig(httpGet); 71 response = httpclient.execute(httpGet); 72 73 // 获取响应内容 74 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 75 HttpEntity entity = response.getEntity(); 76 result = EntityUtils.toString(entity); 77 } 78 } catch (Exception e) { 79 e.printStackTrace(); 80 } finally { 81 try { 82 // 关闭数据流 83 if(response!=null) { 84 response.close(); 85 } 86 } catch (IOException e) { 87 e.printStackTrace(); 88 } 89 try { 90 // 关闭连接 91 if(httpclient!=null) { 92 httpclient.close(); 93 } 94 } catch (IOException e) { 95 e.printStackTrace(); 96 } 97 } 98 return result; 99 } 100 101 /** 102 * @Title: sendPost 103 * @Description: 发送post请求 104 * @param url 105 * @param param 106 * @return String 返回类型 107 * @throws 108 */ 109 public static String sendPost(String url, String param) { 110 // 初始化 111 String result = null; 112 CloseableHttpResponse response = null; 113 // 创建httpclient 114 CloseableHttpClient httpclient = HttpClients.custom() 115 .setDefaultCookieStore(cookieStore) 116 .build(); 117 try { 118 HttpPost httpPost = new HttpPost(url); 119 // 添加header 120 httpReqConfig(httpPost); 121 122 StringEntity stringEntity = new StringEntity(param, "UTF-8"); 123 stringEntity.setContentType("application/x-www-form-urlencoded"); 124 125 // 发送post请求 126 httpPost.setEntity(stringEntity); 127 response = httpclient.execute(httpPost); 128 129 // 获取响应内容 130 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 131 HttpEntity entity = response.getEntity(); 132 result = EntityUtils.toString(entity); 133 } 134 } catch (Exception e) { 135 e.printStackTrace(); 136 } finally { 137 try { 138 // 关闭数据流 139 if(response!=null) { 140 response.close(); 141 } 142 } catch (IOException e) { 143 e.printStackTrace(); 144 } 145 try { 146 // 关闭连接 147 if(httpclient!=null) { 148 httpclient.close(); 149 } 150 } catch (IOException e) { 151 e.printStackTrace(); 152 } 153 } 154 return result; 155 } 156 157 public static void main(String[] args) { 158 159 // 案例:登陆接口 160 String url_a = "http://www.nuandao.com/public/lazyentrance"; 161 String param_a = "isajax=1&remember=1&email=xxxxx@qq.com&password=testing1?&agreeterms=1&itype=&book=1&m=0.2757277030262314"; 162 sendPost(url_a, param_a); 163 164 // // 案例:购物车接口 165 // String url_b = "http://www.nuandao.com/shopping/cart"; 166 // String param_b = "countdown=1&m=0.3810762454661424"; 167 // sendPost(url_b, param_b); 168 169 /* 170 * //案例 String url_c = "http://www.nuandao.com/Ajax/personal"; String 171 * param_c = 172 * "default=1&pagesign=user&url=http%3A%2F%2Fwww.nuandao.com%2Fuser%2Fmyorder&m=0.7948146575033792"; 173 * sendPost(url_c,param_c); 174 * 175 * //案例 String url_d = 176 * "https://m.jiuxian.com/m_v1/goods/get_goods_num_by_province"; String 177 * param_d = "goods_id=28045&province_id=500"; sendPost(url_d,param_d); 178 */ 179 } 180 }