java http get、post请求详解编程语言

  1 package com.zpark.test; 
  2 import org.junit.Test; 
  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; 
 10 import java.util.Map; 
 11 /** 
 12  * @author ceshi 
 13  * @Title: HttpTest 
 14  * @Package test 
 15  * @Description: HttpTest 
 16  * @date 2018/5/3011:37 
 17  */ 
 18 public class JunitHttpTest { 
 19      
 20     @Test 
 21     public void test(){ 
 22         //发送 GET 请求 
 23         String getStr=sendGet("http://localhost:8888/Study/logdin", "userName=test&passorld=123456"); 
 24         System.out.println(getStr); 
 25  
 26         //发送 POST 请求 
 27         String postStr=sendPost("http://localhost:8888/Study/logdin", "userName=test&passorld=123456"); 
 28         System.out.println(postStr); 
 29  
 30     } 
 31      
 32     /** 
 33      * 向指定URL发送GET方法的请求 
 34      * @param url 发送请求的URL 
 35      * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 
 36      * @return URL 所代表远程资源的响应结果 
 37      */ 
 38     public static String sendGet(String url, String param) { 
 39         String result = ""; 
 40         BufferedReader in = null; 
 41         try { 
 42             String urlNameString = url + "?" + param; 
 43             URL realUrl = new URL(urlNameString); 
 44             // 打开和URL之间的连接 
 45             URLConnection connection = realUrl.openConnection(); 
 46             // 设置通用的请求属性 
 47             connection.setRequestProperty("accept", "*/*"); 
 48             connection.setRequestProperty("connection", "Keep-Alive"); 
 49             connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); 
 50             // 建立实际的连接 
 51             connection.connect(); 
 52             // 获取所有响应头字段 
 53             Map<String, List<String>> map = connection.getHeaderFields(); 
 54             // 遍历所有的响应头字段 
 55             for (String key : map.keySet()) { 
 56                 System.out.println(key + "--->" + map.get(key)); 
 57             } 
 58             // 定义 BufferedReader输入流来读取URL的响应 
 59             in = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
 60             String line; 
 61             while ((line = in.readLine()) != null) { 
 62                 result += line; 
 63             } 
 64         } catch (Exception e) { 
 65             e.printStackTrace(); 
 66         } 
 67         // 使用finally块来关闭输入流 
 68         finally { 
 69             try { 
 70                 if (in != null) { 
 71                     in.close(); 
 72                 } 
 73             } catch (Exception e2) { 
 74                 e2.printStackTrace(); 
 75             } 
 76         } 
 77         return result; 
 78     } 
 79  
 80     /** 
 81      * 向指定 URL 发送POST方法的请求 
 82      * @param url 发送请求的 URL 
 83      * @param param  请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 
 84      * @return 所代表远程资源的响应结果 
 85      */ 
 86     public static String sendPost(String url, String param) { 
 87         PrintWriter out = null; 
 88         BufferedReader in = null; 
 89         String result = ""; 
 90         try { 
 91             URL realUrl = new URL(url); 
 92             // 打开和URL之间的连接 
 93             URLConnection conn = realUrl.openConnection(); 
 94             // 设置通用的请求属性 
 95             conn.setRequestProperty("accept", "*/*"); 
 96             conn.setRequestProperty("connection", "Keep-Alive"); 
 97             conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); 
 98             // 发送POST请求必须设置如下两行 
 99             conn.setDoOutput(true); 
100             conn.setDoInput(true); 
101             // 获取URLConnection对象对应的输出流 
102             out = new PrintWriter(conn.getOutputStream()); 
103             // 发送请求参数 
104             out.print(param); 
105             // flush输出流的缓冲 
106             out.flush(); 
107             // 定义BufferedReader输入流来读取URL的响应 
108             in = new BufferedReader( new InputStreamReader(conn.getInputStream())); 
109             String line; 
110             while ((line = in.readLine()) != null) { 
111                 result += line; 
112             } 
113         } catch (Exception e) { 
114             e.printStackTrace(); 
115         } 
116         //使用finally块来关闭输出流、输入流 
117         finally{ 
118             try{ 
119                 if(out!=null){ 
120                     out.close(); 
121                 } 
122                 if(in!=null){ 
123                     in.close(); 
124                 } 
125             } 
126             catch(IOException ex){ 
127                 ex.printStackTrace(); 
128             } 
129         } 
130         return result; 
131     } 
132 }

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18550.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论