java 常见几种发送http请求案例

  1 import java.io.FileOutputStream;
  2 import java.io.IOException;
  3 import java.io.InputStream;
  4 import java.io.InputStreamReader;
  5 import java.io.OutputStreamWriter;
  6 import java.io.UnsupportedEncodingException;
  7 import java.net.HttpURLConnection;
  8 import java.net.Socket;
  9 import java.net.URL;
 10 import java.net.URLConnection;
 11 import java.net.URLEncoder;
 12 import java.util.ArrayList;
 13 import java.util.HashMap;
 14 import java.util.Iterator;
 15 import java.util.List;
 16 import java.util.Map;
 17 import java.util.Map.Entry;
 18
 19 import org.apache.http.HttpResponse;
 20 import org.apache.http.NameValuePair;
 21 import org.apache.http.client.HttpClient;
 22 import org.apache.http.client.entity.UrlEncodedFormEntity;
 23 import org.apache.http.client.methods.HttpGet;
 24 import org.apache.http.client.methods.HttpPost;
 25 import org.apache.http.impl.client.DefaultHttpClient;
 26 import org.apache.http.message.BasicNameValuePair;
 27
 28 /**
 29  * @Description:发送http请求帮助类
 30  * @author:liuyc
 31  * @time:2016年5月17日 下午3:25:32
 32  */
 33 public class HttpClientHelper {
 34     /**
 35      * @Description:使用HttpURLConnection发送post请求
 36      * @author:liuyc
 37      * @time:2016年5月17日 下午3:26:07
 38      */
 39     public static String sendPost(String urlParam, Map<String, Object> params, String charset) {
 40         StringBuffer resultBuffer = null;
 41         // 构建请求参数
 42         StringBuffer sbParams = new StringBuffer();
 43         if (params != null && params.size() > 0) {
 44             for (Entry<String, Object> e : params.entrySet()) {
 45                 sbParams.append(e.getKey());
 46                 sbParams.append("=");
 47                 sbParams.append(e.getValue());
 48                 sbParams.append("&");
 49             }
 50         }
 51         HttpURLConnection con = null;
 52         OutputStreamWriter osw = null;
 53         BufferedReader br = null;
 54         // 发送请求
 55         try {
 56             URL url = new URL(urlParam);
 57             con = (HttpURLConnection) url.openConnection();
 58             con.setRequestMethod("POST");
 59             con.setDoOutput(true);
 60             con.setDoInput(true);
 61             con.setUseCaches(false);
 62             con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
 63             if (sbParams != null && sbParams.length() > 0) {
 64                 osw = new OutputStreamWriter(con.getOutputStream(), charset);
 65                 osw.write(sbParams.substring(0, sbParams.length() - 1));
 66                 osw.flush();
 67             }
 68             // 读取返回内容
 69             resultBuffer = new StringBuffer();
 70             int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));
 71             if (contentLength > 0) {
 72                 br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
 73                 String temp;
 74                 while ((temp = br.readLine()) != null) {
 75                     resultBuffer.append(temp);
 76                 }
 77             }
 78         } catch (Exception e) {
 79             throw new RuntimeException(e);
 80         } finally {
 81             if (osw != null) {
 82                 try {
 83                     osw.close();
 84                 } catch (IOException e) {
 85                     osw = null;
 86                     throw new RuntimeException(e);
 87                 } finally {
 88                     if (con != null) {
 89                         con.disconnect();
 90                         con = null;
 91                     }
 92                 }
 93             }
 94             if (br != null) {
 95                 try {
 96                     br.close();
 97                 } catch (IOException e) {
 98                     br = null;
 99                     throw new RuntimeException(e);
100                 } finally {
101                     if (con != null) {
102                         con.disconnect();
103                         con = null;
104                     }
105                 }
106             }
107         }
108
109         return resultBuffer.toString();
110     }
111
112     /**
113      * @Description:使用URLConnection发送post
114      * @author:liuyc
115      * @time:2016年5月17日 下午3:26:52
116      */
117     public static String sendPost2(String urlParam, Map<String, Object> params, String charset) {
118         StringBuffer resultBuffer = null;
119         // 构建请求参数
120         StringBuffer sbParams = new StringBuffer();
121         if (params != null && params.size() > 0) {
122             for (Entry<String, Object> e : params.entrySet()) {
123                 sbParams.append(e.getKey());
124                 sbParams.append("=");
125                 sbParams.append(e.getValue());
126                 sbParams.append("&");
127             }
128         }
129         URLConnection con = null;
130         OutputStreamWriter osw = null;
131         BufferedReader br = null;
132         try {
133             URL realUrl = new URL(urlParam);
134             // 打开和URL之间的连接
135             con = realUrl.openConnection();
136             // 设置通用的请求属性
137             con.setRequestProperty("accept", "*/*");
138             con.setRequestProperty("connection", "Keep-Alive");
139             con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
140             con.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
141             // 发送POST请求必须设置如下两行
142             con.setDoOutput(true);
143             con.setDoInput(true);
144             // 获取URLConnection对象对应的输出流
145             osw = new OutputStreamWriter(con.getOutputStream(), charset);
146             if (sbParams != null && sbParams.length() > 0) {
147                 // 发送请求参数
148                 osw.write(sbParams.substring(0, sbParams.length() - 1));
149                 // flush输出流的缓冲
150                 osw.flush();
151             }
152             // 定义BufferedReader输入流来读取URL的响应
153             resultBuffer = new StringBuffer();
154             int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));
155             if (contentLength > 0) {
156                 br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
157                 String temp;
158                 while ((temp = br.readLine()) != null) {
159                     resultBuffer.append(temp);
160                 }
161             }
162         } catch (Exception e) {
163             throw new RuntimeException(e);
164         } finally {
165             if (osw != null) {
166                 try {
167                     osw.close();
168                 } catch (IOException e) {
169                     osw = null;
170                     throw new RuntimeException(e);
171                 }
172             }
173             if (br != null) {
174                 try {
175                     br.close();
176                 } catch (IOException e) {
177                     br = null;
178                     throw new RuntimeException(e);
179                 }
180             }
181         }
182         return resultBuffer.toString();
183     }
184
185     /**
186      * @Description:发送get请求保存下载文件
187      * @author:liuyc
188      * @time:2016年5月17日 下午3:27:29
189      */
190     public static void sendGetAndSaveFile(String urlParam, Map<String, Object> params, String fileSavePath) {
191         // 构建请求参数
192         StringBuffer sbParams = new StringBuffer();
193         if (params != null && params.size() > 0) {
194             for (Entry<String, Object> entry : params.entrySet()) {
195                 sbParams.append(entry.getKey());
196                 sbParams.append("=");
197                 sbParams.append(entry.getValue());
198                 sbParams.append("&");
199             }
200         }
201         HttpURLConnection con = null;
202         BufferedReader br = null;
203         FileOutputStream os = null;
204         try {
205             URL url = null;
206             if (sbParams != null && sbParams.length() > 0) {
207                 url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
208             } else {
209                 url = new URL(urlParam);
210             }
211             con = (HttpURLConnection) url.openConnection();
212             con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
213             con.connect();
214             InputStream is = con.getInputStream();
215             os = new FileOutputStream(fileSavePath);
216             byte buf[] = new byte[1024];
217             int count = 0;
218             while ((count = is.read(buf)) != -1) {
219                 os.write(buf, 0, count);
220             }
221             os.flush();
222         } catch (Exception e) {
223             throw new RuntimeException(e);
224         } finally {
225             if (os != null) {
226                 try {
227                     os.close();
228                 } catch (IOException e) {
229                     os = null;
230                     throw new RuntimeException(e);
231                 } finally {
232                     if (con != null) {
233                         con.disconnect();
234                         con = null;
235                     }
236                 }
237             }
238             if (br != null) {
239                 try {
240                     br.close();
241                 } catch (IOException e) {
242                     br = null;
243                     throw new RuntimeException(e);
244                 } finally {
245                     if (con != null) {
246                         con.disconnect();
247                         con = null;
248                     }
249                 }
250             }
251         }
252     }
253
254     /**
255      * @Description:使用HttpURLConnection发送get请求
256      * @author:liuyc
257      * @time:2016年5月17日 下午3:27:29
258      */
259     public static String sendGet(String urlParam, Map<String, Object> params, String charset) {
260         StringBuffer resultBuffer = null;
261         // 构建请求参数
262         StringBuffer sbParams = new StringBuffer();
263         if (params != null && params.size() > 0) {
264             for (Entry<String, Object> entry : params.entrySet()) {
265                 sbParams.append(entry.getKey());
266                 sbParams.append("=");
267                 sbParams.append(entry.getValue());
268                 sbParams.append("&");
269             }
270         }
271         HttpURLConnection con = null;
272         BufferedReader br = null;
273         try {
274             URL url = null;
275             if (sbParams != null && sbParams.length() > 0) {
276                 url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
277             } else {
278                 url = new URL(urlParam);
279             }
280             con = (HttpURLConnection) url.openConnection();
281             con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
282             con.connect();
283             resultBuffer = new StringBuffer();
284             br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
285             String temp;
286             while ((temp = br.readLine()) != null) {
287                 resultBuffer.append(temp);
288             }
289         } catch (Exception e) {
290             throw new RuntimeException(e);
291         } finally {
292             if (br != null) {
293                 try {
294                     br.close();
295                 } catch (IOException e) {
296                     br = null;
297                     throw new RuntimeException(e);
298                 } finally {
299                     if (con != null) {
300                         con.disconnect();
301                         con = null;
302                     }
303                 }
304             }
305         }
306         return resultBuffer.toString();
307     }
308
309     /**
310      * @Description:使用URLConnection发送get请求
311      * @author:liuyc
312      * @time:2016年5月17日 下午3:27:58
313      */
314     public static String sendGet2(String urlParam, Map<String, Object> params, String charset) {
315         StringBuffer resultBuffer = null;
316         // 构建请求参数
317         StringBuffer sbParams = new StringBuffer();
318         if (params != null && params.size() > 0) {
319             for (Entry<String, Object> entry : params.entrySet()) {
320                 sbParams.append(entry.getKey());
321                 sbParams.append("=");
322                 sbParams.append(entry.getValue());
323                 sbParams.append("&");
324             }
325         }
326         BufferedReader br = null;
327         try {
328             URL url = null;
329             if (sbParams != null && sbParams.length() > 0) {
330                 url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
331             } else {
332                 url = new URL(urlParam);
333             }
334             URLConnection con = url.openConnection();
335             // 设置请求属性
336             con.setRequestProperty("accept", "*/*");
337             con.setRequestProperty("connection", "Keep-Alive");
338             con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
339             con.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
340             // 建立连接
341             con.connect();
342             resultBuffer = new StringBuffer();
343             br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
344             String temp;
345             while ((temp = br.readLine()) != null) {
346                 resultBuffer.append(temp);
347             }
348         } catch (Exception e) {
349             throw new RuntimeException(e);
350         } finally {
351             if (br != null) {
352                 try {
353                     br.close();
354                 } catch (IOException e) {
355                     br = null;
356                     throw new RuntimeException(e);
357                 }
358             }
359         }
360         return resultBuffer.toString();
361     }
362
363     /**
364      * @Description:使用HttpClient发送post请求
365      * @author:liuyc
366      * @time:2016年5月17日 下午3:28:23
367      */
368     public static String httpClientPost(String urlParam, Map<String, Object> params, String charset) {
369         StringBuffer resultBuffer = null;
370         HttpClient client = new DefaultHttpClient();
371         HttpPost httpPost = new HttpPost(urlParam);
372         // 构建请求参数
373         List<NameValuePair> list = new ArrayList<NameValuePair>();
374         Iterator<Entry<String, Object>> iterator = params.entrySet().iterator();
375         while (iterator.hasNext()) {
376             Entry<String, Object> elem = iterator.next();
377             list.add(new BasicNameValuePair(elem.getKey(), String.valueOf(elem.getValue())));
378         }
379         BufferedReader br = null;
380         try {
381             if (list.size() > 0) {
382                 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);
383                 httpPost.setEntity(entity);
384             }
385             HttpResponse response = client.execute(httpPost);
386             // 读取服务器响应数据
387             resultBuffer = new StringBuffer();
388             br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
389             String temp;
390             while ((temp = br.readLine()) != null) {
391                 resultBuffer.append(temp);
392             }
393         } catch (Exception e) {
394             throw new RuntimeException(e);
395         } finally {
396             if (br != null) {
397                 try {
398                     br.close();
399                 } catch (IOException e) {
400                     br = null;
401                     throw new RuntimeException(e);
402                 }
403             }
404         }
405         return resultBuffer.toString();
406     }
407
408     /**
409      * @Description:使用HttpClient发送get请求
410      * @author:liuyc
411      * @time:2016年5月17日 下午3:28:56
412      */
413     public static String httpClientGet(String urlParam, Map<String, Object> params, String charset) {
414         StringBuffer resultBuffer = null;
415         HttpClient client = new DefaultHttpClient();
416         BufferedReader br = null;
417         // 构建请求参数
418         StringBuffer sbParams = new StringBuffer();
419         if (params != null && params.size() > 0) {
420             for (Entry<String, Object> entry : params.entrySet()) {
421                 sbParams.append(entry.getKey());
422                 sbParams.append("=");
423                 try {
424                     sbParams.append(URLEncoder.encode(String.valueOf(entry.getValue()), charset));
425                 } catch (UnsupportedEncodingException e) {
426                     throw new RuntimeException(e);
427                 }
428                 sbParams.append("&");
429             }
430         }
431         if (sbParams != null && sbParams.length() > 0) {
432             urlParam = urlParam + "?" + sbParams.substring(0, sbParams.length() - 1);
433         }
434         HttpGet httpGet = new HttpGet(urlParam);
435         try {
436             HttpResponse response = client.execute(httpGet);
437             // 读取服务器响应数据
438             br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
439             String temp;
440             resultBuffer = new StringBuffer();
441             while ((temp = br.readLine()) != null) {
442                 resultBuffer.append(temp);
443             }
444         } catch (Exception e) {
445             throw new RuntimeException(e);
446         } finally {
447             if (br != null) {
448                 try {
449                     br.close();
450                 } catch (IOException e) {
451                     br = null;
452                     throw new RuntimeException(e);
453                 }
454             }
455         }
456         return resultBuffer.toString();
457     }
458
459     /**
460      * @Description:使用socket发送post请求
461      * @author:liuyc
462      * @time:2016年5月18日 上午9:26:22
463      */
464     public static String sendSocketPost(String urlParam, Map<String, Object> params, String charset) {
465         String result = "";
466         // 构建请求参数
467         StringBuffer sbParams = new StringBuffer();
468         if (params != null && params.size() > 0) {
469             for (Entry<String, Object> entry : params.entrySet()) {
470                 sbParams.append(entry.getKey());
471                 sbParams.append("=");
472                 sbParams.append(entry.getValue());
473                 sbParams.append("&");
474             }
475         }
476         Socket socket = null;
477         OutputStreamWriter osw = null;
478         InputStream is = null;
479         try {
480             URL url = new URL(urlParam);
481             String host = url.getHost();
482             int port = url.getPort();
483             if (-1 == port) {
484                 port = 80;
485             }
486             String path = url.getPath();
487             socket = new Socket(host, port);
488             StringBuffer sb = new StringBuffer();
489             sb.append("POST " + path + " HTTP/1.1\r\n");
490             sb.append("Host: " + host + "\r\n");
491             sb.append("Connection: Keep-Alive\r\n");
492             sb.append("Content-Type: application/x-www-form-urlencoded; charset=utf-8 \r\n");
493             sb.append("Content-Length: ").append(sb.toString().getBytes().length).append("\r\n");
494             // 这里一个回车换行,表示消息头写完,不然服务器会继续等待
495             sb.append("\r\n");
496             if (sbParams != null && sbParams.length() > 0) {
497                 sb.append(sbParams.substring(0, sbParams.length() - 1));
498             }
499             osw = new OutputStreamWriter(socket.getOutputStream());
500             osw.write(sb.toString());
501             osw.flush();
502             is = socket.getInputStream();
503             String line = null;
504             // 服务器响应体数据长度
505             int contentLength = 0;
506             // 读取http响应头部信息
507             do {
508                 line = readLine(is, 0, charset);
509                 if (line.startsWith("Content-Length")) {
510                     // 拿到响应体内容长度
511                     contentLength = Integer.parseInt(line.split(":")[1].trim());
512                 }
513                 // 如果遇到了一个单独的回车换行,则表示请求头结束
514             } while (!line.equals("\r\n"));
515             // 读取出响应体数据(就是你要的数据)
516             result = readLine(is, contentLength, charset);
517         } catch (Exception e) {
518             throw new RuntimeException(e);
519         } finally {
520             if (osw != null) {
521                 try {
522                     osw.close();
523                 } catch (IOException e) {
524                     osw = null;
525                     throw new RuntimeException(e);
526                 } finally {
527                     if (socket != null) {
528                         try {
529                             socket.close();
530                         } catch (IOException e) {
531                             socket = null;
532                             throw new RuntimeException(e);
533                         }
534                     }
535                 }
536             }
537             if (is != null) {
538                 try {
539                     is.close();
540                 } catch (IOException e) {
541                     is = null;
542                     throw new RuntimeException(e);
543                 } finally {
544                     if (socket != null) {
545                         try {
546                             socket.close();
547                         } catch (IOException e) {
548                             socket = null;
549                             throw new RuntimeException(e);
550                         }
551                     }
552                 }
553             }
554         }
555         return result;
556     }
557
558     /**
559      * @Description:使用socket发送get请求
560      * @author:liuyc
561      * @time:2016年5月18日 上午9:27:18
562      */
563     public static String sendSocketGet(String urlParam, Map<String, Object> params, String charset) {
564         String result = "";
565         // 构建请求参数
566         StringBuffer sbParams = new StringBuffer();
567         if (params != null && params.size() > 0) {
568             for (Entry<String, Object> entry : params.entrySet()) {
569                 sbParams.append(entry.getKey());
570                 sbParams.append("=");
571                 sbParams.append(entry.getValue());
572                 sbParams.append("&");
573             }
574         }
575         Socket socket = null;
576         OutputStreamWriter osw = null;
577         InputStream is = null;
578         try {
579             URL url = new URL(urlParam);
580             String host = url.getHost();
581             int port = url.getPort();
582             if (-1 == port) {
583                 port = 80;
584             }
585             String path = url.getPath();
586             socket = new Socket(host, port);
587             StringBuffer sb = new StringBuffer();
588             sb.append("GET " + path + " HTTP/1.1\r\n");
589             sb.append("Host: " + host + "\r\n");
590             sb.append("Connection: Keep-Alive\r\n");
591             sb.append("Content-Type: application/x-www-form-urlencoded; charset=utf-8 \r\n");
592             sb.append("Content-Length: ").append(sb.toString().getBytes().length).append("\r\n");
593             // 这里一个回车换行,表示消息头写完,不然服务器会继续等待
594             sb.append("\r\n");
595             if (sbParams != null && sbParams.length() > 0) {
596                 sb.append(sbParams.substring(0, sbParams.length() - 1));
597             }
598             osw = new OutputStreamWriter(socket.getOutputStream());
599             osw.write(sb.toString());
600             osw.flush();
601             is = socket.getInputStream();
602             String line = null;
603             // 服务器响应体数据长度
604             int contentLength = 0;
605             // 读取http响应头部信息
606             do {
607                 line = readLine(is, 0, charset);
608                 if (line.startsWith("Content-Length")) {
609                     // 拿到响应体内容长度
610                     contentLength = Integer.parseInt(line.split(":")[1].trim());
611                 }
612                 // 如果遇到了一个单独的回车换行,则表示请求头结束
613             } while (!line.equals("\r\n"));
614             // 读取出响应体数据(就是你要的数据)
615             result = readLine(is, contentLength, charset);
616         } catch (Exception e) {
617             throw new RuntimeException(e);
618         } finally {
619             if (osw != null) {
620                 try {
621                     osw.close();
622                 } catch (IOException e) {
623                     osw = null;
624                     throw new RuntimeException(e);
625                 } finally {
626                     if (socket != null) {
627                         try {
628                             socket.close();
629                         } catch (IOException e) {
630                             socket = null;
631                             throw new RuntimeException(e);
632                         }
633                     }
634                 }
635             }
636             if (is != null) {
637                 try {
638                     is.close();
639                 } catch (IOException e) {
640                     is = null;
641                     throw new RuntimeException(e);
642                 } finally {
643                     if (socket != null) {
644                         try {
645                             socket.close();
646                         } catch (IOException e) {
647                             socket = null;
648                             throw new RuntimeException(e);
649                         }
650                     }
651                 }
652             }
653         }
654         return result;
655     }
656
657     /**
658      * @Description:读取一行数据,contentLe内容长度为0时,读取响应头信息,不为0时读正文
659      * @time:2016年5月17日 下午6:11:07
660      */
661     private static String readLine(InputStream is, int contentLength, String charset) throws IOException {
662         List<Byte> lineByte = new ArrayList<Byte>();
663         byte tempByte;
664         int cumsum = 0;
665         if (contentLength != 0) {
666             do {
667                 tempByte = (byte) is.read();
668                 lineByte.add(Byte.valueOf(tempByte));
669                 cumsum++;
670             } while (cumsum < contentLength);// cumsum等于contentLength表示已读完
671         } else {
672             do {
673                 tempByte = (byte) is.read();
674                 lineByte.add(Byte.valueOf(tempByte));
675             } while (tempByte != 10);// 换行符的ascii码值为10
676         }
677
678         byte[] resutlBytes = new byte[lineByte.size()];
679         for (int i = 0; i < lineByte.size(); i++) {
680             resutlBytes[i] = (lineByte.get(i)).byteValue();
681         }
682         return new String(resutlBytes, charset);
683     }
684
685 }  
  1. import java.io.FileOutputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStreamWriter;
  6. import java.io.UnsupportedEncodingException;
  7. import java.net.HttpURLConnection;
  8. import java.net.Socket;
  9. import java.net.URL;
  10. import java.net.URLConnection;
  11. import java.net.URLEncoder;
  12. import java.util.ArrayList;
  13. import java.util.HashMap;
  14. import java.util.Iterator;
  15. import java.util.List;
  16. import java.util.Map;
  17. import java.util.Map.Entry;
  18. import org.apache.http.HttpResponse;
  19. import org.apache.http.NameValuePair;
  20. import org.apache.http.client.HttpClient;
  21. import org.apache.http.client.entity.UrlEncodedFormEntity;
  22. import org.apache.http.client.methods.HttpGet;
  23. import org.apache.http.client.methods.HttpPost;
  24. import org.apache.http.impl.client.DefaultHttpClient;
  25. import org.apache.http.message.BasicNameValuePair;
  26. /**
  27. * @Description:发送http请求帮助类
  28. * @author:liuyc
  29. * @time:2016年5月17日 下午3:25:32
  30. */
  31. public class HttpClientHelper {
  32. /**
  33. * @Description:使用HttpURLConnection发送post请求
  34. * @author:liuyc
  35. * @time:2016年5月17日 下午3:26:07
  36. */
  37. public static String sendPost(String urlParam, Map<String, Object> params, String charset) {
  38. StringBuffer resultBuffer = null;
  39. // 构建请求参数
  40. StringBuffer sbParams = new StringBuffer();
  41. if (params != null && params.size() > 0) {
  42. for (Entry<String, Object> e : params.entrySet()) {
  43. sbParams.append(e.getKey());
  44. sbParams.append("=");
  45. sbParams.append(e.getValue());
  46. sbParams.append("&");
  47. }
  48. }
  49. HttpURLConnection con = null;
  50. OutputStreamWriter osw = null;
  51. BufferedReader br = null;
  52. // 发送请求
  53. try {
  54. URL url = new URL(urlParam);
  55. con = (HttpURLConnection) url.openConnection();
  56. con.setRequestMethod("POST");
  57. con.setDoOutput(true);
  58. con.setDoInput(true);
  59. con.setUseCaches(false);
  60. con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  61. if (sbParams != null && sbParams.length() > 0) {
  62. osw = new OutputStreamWriter(con.getOutputStream(), charset);
  63. osw.write(sbParams.substring(0, sbParams.length() - 1));
  64. osw.flush();
  65. }
  66. // 读取返回内容
  67. resultBuffer = new StringBuffer();
  68. int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));
  69. if (contentLength > 0) {
  70. br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
  71. String temp;
  72. while ((temp = br.readLine()) != null) {
  73. resultBuffer.append(temp);
  74. }
  75. }
  76. } catch (Exception e) {
  77. throw new RuntimeException(e);
  78. } finally {
  79. if (osw != null) {
  80. try {
  81. osw.close();
  82. } catch (IOException e) {
  83. osw = null;
  84. throw new RuntimeException(e);
  85. } finally {
  86. if (con != null) {
  87. con.disconnect();
  88. con = null;
  89. }
  90. }
  91. }
  92. if (br != null) {
  93. try {
  94. br.close();
  95. } catch (IOException e) {
  96. br = null;
  97. throw new RuntimeException(e);
  98. } finally {
  99. if (con != null) {
  100. con.disconnect();
  101. con = null;
  102. }
  103. }
  104. }
  105. }
  106. return resultBuffer.toString();
  107. }
  108. /**
  109. * @Description:使用URLConnection发送post
  110. * @author:liuyc
  111. * @time:2016年5月17日 下午3:26:52
  112. */
  113. public static String sendPost2(String urlParam, Map<String, Object> params, String charset) {
  114. StringBuffer resultBuffer = null;
  115. // 构建请求参数
  116. StringBuffer sbParams = new StringBuffer();
  117. if (params != null && params.size() > 0) {
  118. for (Entry<String, Object> e : params.entrySet()) {
  119. sbParams.append(e.getKey());
  120. sbParams.append("=");
  121. sbParams.append(e.getValue());
  122. sbParams.append("&");
  123. }
  124. }
  125. URLConnection con = null;
  126. OutputStreamWriter osw = null;
  127. BufferedReader br = null;
  128. try {
  129. URL realUrl = new URL(urlParam);
  130. // 打开和URL之间的连接
  131. con = realUrl.openConnection();
  132. // 设置通用的请求属性
  133. con.setRequestProperty("accept", "*/*");
  134. con.setRequestProperty("connection", "Keep-Alive");
  135. con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  136. con.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  137. // 发送POST请求必须设置如下两行
  138. con.setDoOutput(true);
  139. con.setDoInput(true);
  140. // 获取URLConnection对象对应的输出流
  141. osw = new OutputStreamWriter(con.getOutputStream(), charset);
  142. if (sbParams != null && sbParams.length() > 0) {
  143. // 发送请求参数
  144. osw.write(sbParams.substring(0, sbParams.length() - 1));
  145. // flush输出流的缓冲
  146. osw.flush();
  147. }
  148. // 定义BufferedReader输入流来读取URL的响应
  149. resultBuffer = new StringBuffer();
  150. int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));
  151. if (contentLength > 0) {
  152. br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
  153. String temp;
  154. while ((temp = br.readLine()) != null) {
  155. resultBuffer.append(temp);
  156. }
  157. }
  158. } catch (Exception e) {
  159. throw new RuntimeException(e);
  160. } finally {
  161. if (osw != null) {
  162. try {
  163. osw.close();
  164. } catch (IOException e) {
  165. osw = null;
  166. throw new RuntimeException(e);
  167. }
  168. }
  169. if (br != null) {
  170. try {
  171. br.close();
  172. } catch (IOException e) {
  173. br = null;
  174. throw new RuntimeException(e);
  175. }
  176. }
  177. }
  178. return resultBuffer.toString();
  179. }
  180. /**
  181. * @Description:发送get请求保存下载文件
  182. * @author:liuyc
  183. * @time:2016年5月17日 下午3:27:29
  184. */
  185. public static void sendGetAndSaveFile(String urlParam, Map<String, Object> params, String fileSavePath) {
  186. // 构建请求参数
  187. StringBuffer sbParams = new StringBuffer();
  188. if (params != null && params.size() > 0) {
  189. for (Entry<String, Object> entry : params.entrySet()) {
  190. sbParams.append(entry.getKey());
  191. sbParams.append("=");
  192. sbParams.append(entry.getValue());
  193. sbParams.append("&");
  194. }
  195. }
  196. HttpURLConnection con = null;
  197. BufferedReader br = null;
  198. FileOutputStream os = null;
  199. try {
  200. URL url = null;
  201. if (sbParams != null && sbParams.length() > 0) {
  202. url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
  203. } else {
  204. url = new URL(urlParam);
  205. }
  206. con = (HttpURLConnection) url.openConnection();
  207. con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  208. con.connect();
  209. InputStream is = con.getInputStream();
  210. os = new FileOutputStream(fileSavePath);
  211. byte buf[] = new byte[1024];
  212. int count = 0;
  213. while ((count = is.read(buf)) != -1) {
  214. os.write(buf, 0, count);
  215. }
  216. os.flush();
  217. } catch (Exception e) {
  218. throw new RuntimeException(e);
  219. } finally {
  220. if (os != null) {
  221. try {
  222. os.close();
  223. } catch (IOException e) {
  224. os = null;
  225. throw new RuntimeException(e);
  226. } finally {
  227. if (con != null) {
  228. con.disconnect();
  229. con = null;
  230. }
  231. }
  232. }
  233. if (br != null) {
  234. try {
  235. br.close();
  236. } catch (IOException e) {
  237. br = null;
  238. throw new RuntimeException(e);
  239. } finally {
  240. if (con != null) {
  241. con.disconnect();
  242. con = null;
  243. }
  244. }
  245. }
  246. }
  247. }
  248. /**
  249. * @Description:使用HttpURLConnection发送get请求
  250. * @author:liuyc
  251. * @time:2016年5月17日 下午3:27:29
  252. */
  253. public static String sendGet(String urlParam, Map<String, Object> params, String charset) {
  254. StringBuffer resultBuffer = null;
  255. // 构建请求参数
  256. StringBuffer sbParams = new StringBuffer();
  257. if (params != null && params.size() > 0) {
  258. for (Entry<String, Object> entry : params.entrySet()) {
  259. sbParams.append(entry.getKey());
  260. sbParams.append("=");
  261. sbParams.append(entry.getValue());
  262. sbParams.append("&");
  263. }
  264. }
  265. HttpURLConnection con = null;
  266. BufferedReader br = null;
  267. try {
  268. URL url = null;
  269. if (sbParams != null && sbParams.length() > 0) {
  270. url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
  271. } else {
  272. url = new URL(urlParam);
  273. }
  274. con = (HttpURLConnection) url.openConnection();
  275. con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  276. con.connect();
  277. resultBuffer = new StringBuffer();
  278. br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
  279. String temp;
  280. while ((temp = br.readLine()) != null) {
  281. resultBuffer.append(temp);
  282. }
  283. } catch (Exception e) {
  284. throw new RuntimeException(e);
  285. } finally {
  286. if (br != null) {
  287. try {
  288. br.close();
  289. } catch (IOException e) {
  290. br = null;
  291. throw new RuntimeException(e);
  292. } finally {
  293. if (con != null) {
  294. con.disconnect();
  295. con = null;
  296. }
  297. }
  298. }
  299. }
  300. return resultBuffer.toString();
  301. }
  302. /**
  303. * @Description:使用URLConnection发送get请求
  304. * @author:liuyc
  305. * @time:2016年5月17日 下午3:27:58
  306. */
  307. public static String sendGet2(String urlParam, Map<String, Object> params, String charset) {
  308. StringBuffer resultBuffer = null;
  309. // 构建请求参数
  310. StringBuffer sbParams = new StringBuffer();
  311. if (params != null && params.size() > 0) {
  312. for (Entry<String, Object> entry : params.entrySet()) {
  313. sbParams.append(entry.getKey());
  314. sbParams.append("=");
  315. sbParams.append(entry.getValue());
  316. sbParams.append("&");
  317. }
  318. }
  319. BufferedReader br = null;
  320. try {
  321. URL url = null;
  322. if (sbParams != null && sbParams.length() > 0) {
  323. url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
  324. } else {
  325. url = new URL(urlParam);
  326. }
  327. URLConnection con = url.openConnection();
  328. // 设置请求属性
  329. con.setRequestProperty("accept", "*/*");
  330. con.setRequestProperty("connection", "Keep-Alive");
  331. con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  332. con.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  333. // 建立连接
  334. con.connect();
  335. resultBuffer = new StringBuffer();
  336. br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
  337. String temp;
  338. while ((temp = br.readLine()) != null) {
  339. resultBuffer.append(temp);
  340. }
  341. } catch (Exception e) {
  342. throw new RuntimeException(e);
  343. } finally {
  344. if (br != null) {
  345. try {
  346. br.close();
  347. } catch (IOException e) {
  348. br = null;
  349. throw new RuntimeException(e);
  350. }
  351. }
  352. }
  353. return resultBuffer.toString();
  354. }
  355. /**
  356. * @Description:使用HttpClient发送post请求
  357. * @author:liuyc
  358. * @time:2016年5月17日 下午3:28:23
  359. */
  360. public static String httpClientPost(String urlParam, Map<String, Object> params, String charset) {
  361. StringBuffer resultBuffer = null;
  362. HttpClient client = new DefaultHttpClient();
  363. HttpPost httpPost = new HttpPost(urlParam);
  364. // 构建请求参数
  365. List<NameValuePair> list = new ArrayList<NameValuePair>();
  366. Iterator<Entry<String, Object>> iterator = params.entrySet().iterator();
  367. while (iterator.hasNext()) {
  368. Entry<String, Object> elem = iterator.next();
  369. list.add(new BasicNameValuePair(elem.getKey(), String.valueOf(elem.getValue())));
  370. }
  371. BufferedReader br = null;
  372. try {
  373. if (list.size() > 0) {
  374. UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);
  375. httpPost.setEntity(entity);
  376. }
  377. HttpResponse response = client.execute(httpPost);
  378. // 读取服务器响应数据
  379. resultBuffer = new StringBuffer();
  380. br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  381. String temp;
  382. while ((temp = br.readLine()) != null) {
  383. resultBuffer.append(temp);
  384. }
  385. } catch (Exception e) {
  386. throw new RuntimeException(e);
  387. } finally {
  388. if (br != null) {
  389. try {
  390. br.close();
  391. } catch (IOException e) {
  392. br = null;
  393. throw new RuntimeException(e);
  394. }
  395. }
  396. }
  397. return resultBuffer.toString();
  398. }
  399. /**
  400. * @Description:使用HttpClient发送get请求
  401. * @author:liuyc
  402. * @time:2016年5月17日 下午3:28:56
  403. */
  404. public static String httpClientGet(String urlParam, Map<String, Object> params, String charset) {
  405. StringBuffer resultBuffer = null;
  406. HttpClient client = new DefaultHttpClient();
  407. BufferedReader br = null;
  408. // 构建请求参数
  409. StringBuffer sbParams = new StringBuffer();
  410. if (params != null && params.size() > 0) {
  411. for (Entry<String, Object> entry : params.entrySet()) {
  412. sbParams.append(entry.getKey());
  413. sbParams.append("=");
  414. try {
  415. sbParams.append(URLEncoder.encode(String.valueOf(entry.getValue()), charset));
  416. } catch (UnsupportedEncodingException e) {
  417. throw new RuntimeException(e);
  418. }
  419. sbParams.append("&");
  420. }
  421. }
  422. if (sbParams != null && sbParams.length() > 0) {
  423. urlParam = urlParam + "?" + sbParams.substring(0, sbParams.length() - 1);
  424. }
  425. HttpGet httpGet = new HttpGet(urlParam);
  426. try {
  427. HttpResponse response = client.execute(httpGet);
  428. // 读取服务器响应数据
  429. br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  430. String temp;
  431. resultBuffer = new StringBuffer();
  432. while ((temp = br.readLine()) != null) {
  433. resultBuffer.append(temp);
  434. }
  435. } catch (Exception e) {
  436. throw new RuntimeException(e);
  437. } finally {
  438. if (br != null) {
  439. try {
  440. br.close();
  441. } catch (IOException e) {
  442. br = null;
  443. throw new RuntimeException(e);
  444. }
  445. }
  446. }
  447. return resultBuffer.toString();
  448. }
  449. /**
  450. * @Description:使用socket发送post请求
  451. * @author:liuyc
  452. * @time:2016年5月18日 上午9:26:22
  453. */
  454. public static String sendSocketPost(String urlParam, Map<String, Object> params, String charset) {
  455. String result = "";
  456. // 构建请求参数
  457. StringBuffer sbParams = new StringBuffer();
  458. if (params != null && params.size() > 0) {
  459. for (Entry<String, Object> entry : params.entrySet()) {
  460. sbParams.append(entry.getKey());
  461. sbParams.append("=");
  462. sbParams.append(entry.getValue());
  463. sbParams.append("&");
  464. }
  465. }
  466. Socket socket = null;
  467. OutputStreamWriter osw = null;
  468. InputStream is = null;
  469. try {
  470. URL url = new URL(urlParam);
  471. String host = url.getHost();
  472. int port = url.getPort();
  473. if (-1 == port) {
  474. port = 80;
  475. }
  476. String path = url.getPath();
  477. socket = new Socket(host, port);
  478. StringBuffer sb = new StringBuffer();
  479. sb.append("POST " + path + " HTTP/1.1\r\n");
  480. sb.append("Host: " + host + "\r\n");
  481. sb.append("Connection: Keep-Alive\r\n");
  482. sb.append("Content-Type: application/x-www-form-urlencoded; charset=utf-8 \r\n");
  483. sb.append("Content-Length: ").append(sb.toString().getBytes().length).append("\r\n");
  484. // 这里一个回车换行,表示消息头写完,不然服务器会继续等待
  485. sb.append("\r\n");
  486. if (sbParams != null && sbParams.length() > 0) {
  487. sb.append(sbParams.substring(0, sbParams.length() - 1));
  488. }
  489. osw = new OutputStreamWriter(socket.getOutputStream());
  490. osw.write(sb.toString());
  491. osw.flush();
  492. is = socket.getInputStream();
  493. String line = null;
  494. // 服务器响应体数据长度
  495. int contentLength = 0;
  496. // 读取http响应头部信息
  497. do {
  498. line = readLine(is, 0, charset);
  499. if (line.startsWith("Content-Length")) {
  500. // 拿到响应体内容长度
  501. contentLength = Integer.parseInt(line.split(":")[1].trim());
  502. }
  503. // 如果遇到了一个单独的回车换行,则表示请求头结束
  504. } while (!line.equals("\r\n"));
  505. // 读取出响应体数据(就是你要的数据)
  506. result = readLine(is, contentLength, charset);
  507. } catch (Exception e) {
  508. throw new RuntimeException(e);
  509. } finally {
  510. if (osw != null) {
  511. try {
  512. osw.close();
  513. } catch (IOException e) {
  514. osw = null;
  515. throw new RuntimeException(e);
  516. } finally {
  517. if (socket != null) {
  518. try {
  519. socket.close();
  520. } catch (IOException e) {
  521. socket = null;
  522. throw new RuntimeException(e);
  523. }
  524. }
  525. }
  526. }
  527. if (is != null) {
  528. try {
  529. is.close();
  530. } catch (IOException e) {
  531. is = null;
  532. throw new RuntimeException(e);
  533. } finally {
  534. if (socket != null) {
  535. try {
  536. socket.close();
  537. } catch (IOException e) {
  538. socket = null;
  539. throw new RuntimeException(e);
  540. }
  541. }
  542. }
  543. }
  544. }
  545. return result;
  546. }
  547. /**
  548. * @Description:使用socket发送get请求
  549. * @author:liuyc
  550. * @time:2016年5月18日 上午9:27:18
  551. */
  552. public static String sendSocketGet(String urlParam, Map<String, Object> params, String charset) {
  553. String result = "";
  554. // 构建请求参数
  555. StringBuffer sbParams = new StringBuffer();
  556. if (params != null && params.size() > 0) {
  557. for (Entry<String, Object> entry : params.entrySet()) {
  558. sbParams.append(entry.getKey());
  559. sbParams.append("=");
  560. sbParams.append(entry.getValue());
  561. sbParams.append("&");
  562. }
  563. }
  564. Socket socket = null;
  565. OutputStreamWriter osw = null;
  566. InputStream is = null;
  567. try {
  568. URL url = new URL(urlParam);
  569. String host = url.getHost();
  570. int port = url.getPort();
  571. if (-1 == port) {
  572. port = 80;
  573. }
  574. String path = url.getPath();
  575. socket = new Socket(host, port);
  576. StringBuffer sb = new StringBuffer();
  577. sb.append("GET " + path + " HTTP/1.1\r\n");
  578. sb.append("Host: " + host + "\r\n");
  579. sb.append("Connection: Keep-Alive\r\n");
  580. sb.append("Content-Type: application/x-www-form-urlencoded; charset=utf-8 \r\n");
  581. sb.append("Content-Length: ").append(sb.toString().getBytes().length).append("\r\n");
  582. // 这里一个回车换行,表示消息头写完,不然服务器会继续等待
  583. sb.append("\r\n");
  584. if (sbParams != null && sbParams.length() > 0) {
  585. sb.append(sbParams.substring(0, sbParams.length() - 1));
  586. }
  587. osw = new OutputStreamWriter(socket.getOutputStream());
  588. osw.write(sb.toString());
  589. osw.flush();
  590. is = socket.getInputStream();
  591. String line = null;
  592. // 服务器响应体数据长度
  593. int contentLength = 0;
  594. // 读取http响应头部信息
  595. do {
  596. line = readLine(is, 0, charset);
  597. if (line.startsWith("Content-Length")) {
  598. // 拿到响应体内容长度
  599. contentLength = Integer.parseInt(line.split(":")[1].trim());
  600. }
  601. // 如果遇到了一个单独的回车换行,则表示请求头结束
  602. } while (!line.equals("\r\n"));
  603. // 读取出响应体数据(就是你要的数据)
  604. result = readLine(is, contentLength, charset);
  605. } catch (Exception e) {
  606. throw new RuntimeException(e);
  607. } finally {
  608. if (osw != null) {
  609. try {
  610. osw.close();
  611. } catch (IOException e) {
  612. osw = null;
  613. throw new RuntimeException(e);
  614. } finally {
  615. if (socket != null) {
  616. try {
  617. socket.close();
  618. } catch (IOException e) {
  619. socket = null;
  620. throw new RuntimeException(e);
  621. }
  622. }
  623. }
  624. }
  625. if (is != null) {
  626. try {
  627. is.close();
  628. } catch (IOException e) {
  629. is = null;
  630. throw new RuntimeException(e);
  631. } finally {
  632. if (socket != null) {
  633. try {
  634. socket.close();
  635. } catch (IOException e) {
  636. socket = null;
  637. throw new RuntimeException(e);
  638. }
  639. }
  640. }
  641. }
  642. }
  643. return result;
  644. }
  645. /**
  646. * @Description:读取一行数据,contentLe内容长度为0时,读取响应头信息,不为0时读正文
  647. * @time:2016年5月17日 下午6:11:07
  648. */
  649. private static String readLine(InputStream is, int contentLength, String charset) throws IOException {
  650. List<Byte> lineByte = new ArrayList<Byte>();
  651. byte tempByte;
  652. int cumsum = 0;
  653. if (contentLength != 0) {
  654. do {
  655. tempByte = (byte) is.read();
  656. lineByte.add(Byte.valueOf(tempByte));
  657. cumsum++;
  658. } while (cumsum < contentLength);// cumsum等于contentLength表示已读完
  659. } else {
  660. do {
  661. tempByte = (byte) is.read();
  662. lineByte.add(Byte.valueOf(tempByte));
  663. } while (tempByte != 10);// 换行符的ascii码值为10
  664. }
  665. byte[] resutlBytes = new byte[lineByte.size()];
  666. for (int i = 0; i < lineByte.size(); i++) {
  667. resutlBytes[i] = (lineByte.get(i)).byteValue();
  668. }
  669. return new String(resutlBytes, charset);
  670. }
  671. }
时间: 2024-08-06 05:56:17

java 常见几种发送http请求案例的相关文章

java中原生的发送http请求(无任何的jar包导入)

1 package com.teamsun.pay.wxpay.util; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.io.PrintWriter; 7 import java.net.URL; 8 import java.net.URLConnection; 9 import java.util.List;

【JAVA】通过HttpClient发送HTTP请求的方法

HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 嵌入在 HTML 页面中的javascript 代码,猜测内容类型,重新格式化请求/重定向URI,或者其它和 HTTP 运输无关的功能. HttpClient使用 使用需要引入jar包,maven项目引入如下: 1 <dependency> 2 <groupId>org.apache

Ajax发送XML请求案例

如果请求参数较多,而且请求参数的结构关系复杂,则可以考虑发送XML请求.XML请求的实质还是POST请求,只是在发送请求的客户端页面将请求参数封装成XML字符串的形式,服务器端则负责解析该XML字符串.当然,服务器获取到XML字符串后,可借助于dom4j或JDOM等工具来解析. 程序清单:Ajax02request/xml/second.jsp 1 <%@ page contentType="text/html; charset=UTF-8" language="jav

java常见五种排序方式

package com.chenyang.www.demo; /** * Created by 红魔 on 2015/11/1. */public class Scortdemo {/** * 冒泡法排序<br/>* <li>比较相邻的元素.如果第一个比第二个大,就交换他们两个.</li>* <li>对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数.</li>* <li>针对所有的元素重

PHP的3种发送HTTP请求的方式

1.cURL <?php class IndexController extends ControllerBase { public function indexAction() { $postfields = array('name'=>'刘的话liudehua','age'=>'199'); $this->mycurl('http://127.0.0.1:8888',http_build_query($postfields)); $this->log->debug(

java 使用原生HttpURLConnection发送post请求

import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Cale

[Java]随记--HttpClient发送put请求

http://blog.csdn.net/u010989191/article/details/52852155 ********************************************************** @RequestMapping(value="/Xxxxx/authenticate") public @ResponseBody String getToken(@RequestParam String username, @RequestParam St

通过java.net.URLConnection发送HTTP请求的方法

1.GET与POST请求的区别 a) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, b) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内. 2.URLConnection的对象 a) 获取URLConnection实例 URL url = new URL(urlString); // 根据url生成urlConnection对象 urlConnection = (HttpURLConnection) url.

Java发送HTTPS请求

前言 上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的 .我也是由于对接了其他企业后总结了一套发送 https的工具.大家网上找方法很多的,但是可不是你粘过来就能用啊,我也是踩过坑的,所以我这个工具,只要粘贴到你们自己项目里就可以用.我的工具跟网上没什么区别,唯一的区别是我亲身实战过,把需要注意的细节列出来,不让大家浪费时间.   正文 本文只介绍 发送 post 请求,既然选择了 https 就不会用get,因为get也是不安全的.   读前须知 我会把需要依赖