zoukankan      html  css  js  c++  java
  • 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,
  • 相关阅读:
    dev中gridcontrol为列添加RepositoryItemImageComboBox内置器
    arcengine查询
    利用反射动态创建对象
    arcengine加载模板时实现比例尺与地图的同步
    ArcEngine HRESULT:0x80040215的解决方法( 转)
    Silverlight中的数据访问
    HyperLink链接到项目中的文件
    Silverlight中的数据绑定4
    自定义控件的构建(3)
    自定义控件的构建(1)
  • 原文地址:https://www.cnblogs.com/renkangke/p/3050280.html
Copyright © 2011-2022 走看看