Http之post和get……


首先是post和get的区别
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

譬如:
1、直接获取数据
url:http://www.taobao.com
HttpURLConnection urlConnection = (HttpURLConnection) mUrl.openConnection();// 打开连接
InputStreamReader inputStreamReader = new InputStreamReader(urlConnection.getInputStream());// 取出内容
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);// 读到缓存
String inputwordString = null;
while ((inputwordString = bufferedReader.readLine()) != null) {
mResultDataString += inputwordString + "/n/n";
}
2、get方式
String httpUrl = "http://192.168.1.110:8080/httpget.jsp?par=abcdefg";
具体方式和1相同
3、post方式
// 使用HttpURLConnection打开连接
                HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
                //因为这个是post请求,设立需要设置为true
                urlConn.setDoOutput(true);
                urlConn.setDoInput(true);
                // 设置以POST方式
                urlConn.setRequestMethod("POST");
                // Post 请求不能使用缓存
                urlConn.setUseCaches(false);
                urlConn.setInstanceFollowRedirects(true);
                // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
                urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
                // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
                // 要注意的是connection.getOutputStream会隐含的进行connect。
                urlConn.connect();
                //DataOutputStream流
                DataOutputStream out = new DataOutputStream(urlConn.getOutputStream());
                //要上传的参数
                String content = "par=" + URLEncoder.encode("ABCDEFG", "gb2312");
                //将要上传的内容写入流中
                out.writeBytes(content); 
                //刷新、关闭
                out.flush();
                out.close(); 
                //获取数据
                BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
                String inputLine = null;
                //使用循环来读取获得的数据
                while (((inputLine = reader.readLine()) != null))
                {
                    //我们在每一行后面加上一个"\n"来换行
                    resultData += inputLine + "\n";
                }          
                reader.close();
                //关闭http连接
                urlConn.disconnect();
Conquer Android开发者群95426703,Q:1532507234, 1532507234@qq.com,
原文地址:https://www.cnblogs.com/renkangke/p/3050280.html