Java实现post和get请求

Posted 疯狂路亚人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现post和get请求相关的知识,希望对你有一定的参考价值。

GET请求:GET请求会向服务器发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

 

 1 /** 
 2      * 向指定URL发送GET方法的请求 
 3      *  
 4      */  
 5     public static String get(String url) {  
 6         BufferedReader in = null;  
 7         try {  
 8             URL realUrl = new URL(url);  
 9             // 打开和URL之间的连接  
10             URLConnection connection = realUrl.openConnection();  
11             // 设置通用的请求属性  
12             connection.setRequestProperty("accept", "*/*");  
13             connection.setRequestProperty("connection", "Keep-Alive");  
14             connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");  
15             connection.setConnectTimeout(5000);  
16             connection.setReadTimeout(5000);  
17             // 建立实际的连接  
18             connection.connect();  
19             // 定义 BufferedReader输入流来读取URL的响应  
20             in = new BufferedReader(new InputStreamReader(connection.getInputStream()));  
21             StringBuffer sb = new StringBuffer();  
22             String line;  
23             while ((line = in.readLine()) != null) {  
24                 sb.append(line);  
25             }  
26             return sb.toString();  
27         } catch (Exception e) {  
28             LOG.error("Exception occur when send http get request!", e);  
29         }  
30         // 使用finally块来关闭输入流  
31         finally {  
32             try {  
33                 if (in != null) {  
34                     in.close();  
35                 }  
36             } catch (Exception e2) {  
37                 e2.printStackTrace();  
38             }  
39         }  
40         return null;  
41     }  

 

 

 

 

post请求:POST是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

 1 /** 
 2      * 发送HttpPost请求 
 3      *  
 4      * @param strURL 
 5      *            服务地址 
 6      * @param params 
 7      *  
 8      * @return 成功:返回json字符串<br/> 
 9      */  
10     public static String jsonPost(String strURL, Map<String, String> params) {  
11         try {  
12             URL url = new URL(strURL);// 创建连接  
13             HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
14             connection.setDoOutput(true);  
15             connection.setDoInput(true);  
16             connection.setUseCaches(false);  
17             connection.setInstanceFollowRedirects(true);  
18             connection.setRequestMethod("POST"); // 设置请求方式  
19             connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式  
20             connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式  
21             connection.connect();  
22             OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码  
23             out.append(JSONUtil.object2JsonString(params));  
24             out.flush();  
25             out.close();  
26   
27             int code = connection.getResponseCode();  
28             InputStream is = null;  
29             if (code == 200) {  
30                 is = connection.getInputStream();  
31             } else {  
32                 is = connection.getErrorStream();  
33             }  
34   
35             // 读取响应  
36             int length = (int) connection.getContentLength();// 获取长度  
37             if (length != -1) {  
38                 byte[] data = new byte[length];  
39                 byte[] temp = new byte[512];  
40                 int readLen = 0;  
41                 int destPos = 0;  
42                 while ((readLen = is.read(temp)) > 0) {  
43                     System.arraycopy(temp, 0, data, destPos, readLen);  
44                     destPos += readLen;  
45                 }  
46                 String result = new String(data, "UTF-8"); // utf-8编码  
47                 return result;  
48             }  
49   
50         } catch (IOException e) {  
51             LOG.error("Exception occur when send http post request!", e);  
52         }  
53         return "error"; // 自定义错误信息  
54     }  

 



以上是关于Java实现post和get请求的主要内容,如果未能解决你的问题,请参考以下文章

Java Socket 实现HTTP与HTTPS协议发送POST/GET请求

java 实现Put request

java模拟简易Http的get和post请求

Java 模拟 HTTP Get Post 请求实现论坛自动回帖

一个简单的http server,处理get和post请求,Python实现

一个简单的http server,处理get和post请求,Python实现