URLConnection以post方式提交数据

2019-05-11  本文已影响0人  MengkZhang

post请求跟get请求的区别

String path = "http://192.168.11.73:8080/login/LoginServlet";
conn.setRequestMethod("POST");
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                conn.setRequestProperty("Content-Length", data.length()+"");
                conn.setDoOutput(true);// 设置一个标记 允许输出 
                conn.getOutputStream().write(data.getBytes());

URLConnection以post方式提交数据时程序代码:

    // [1]点击按钮 进行post方式提交数据
    public void click2(View v) {

        
    new Thread(){public void run() {
            try {
            //[2]获取用户名和密码 
            String name = et_username.getText().toString().trim();
            String pwd = et_password.getText().toString().trim();
            //[2.1]定义get方式要提交的路径 
            
            String data = "username="+URLEncoder.encode(name, "utf-8")+"&password="+URLEncoder.encode(pwd,"utf-8")+""; //请求体的内容
            
            // 一 ☆☆☆☆☆☆☆和get方式提交数据 区别 路径不同
            
            String path = "http://192.168.11.73:8080/login/LoginServlet";
        
                //(1) 创建一个url对象 参数就是网址 
                URL url = new URL(path);
                //(2)获取HttpURLConnection 链接对象
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                //(3)设置参数  发送get请求
                
            //二 ☆☆☆☆☆☆☆和get方式提交数据 区别  设置请求方式是post
                conn.setRequestMethod("POST"); //默认请求 就是get  要大写
                //(4)设置链接网络的超时时间 
                conn.setConnectTimeout(5000);
                
                
            //三      ☆☆☆☆☆☆☆和get方式提交数据 区别 要多设置2个请求头信息 
                //设置头信息
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                conn.setRequestProperty("Content-Length", data.length()+"");
                
            
                //四 ☆☆☆☆☆☆☆ 把我们组拼好的数据提交给服务器  以流的形式提交 
                conn.setDoOutput(true);// 设置一个标记 允许输出 
                conn.getOutputStream().write(data.getBytes());
                
                
                //(5)获取服务器返回的状态码 
                int code = conn.getResponseCode(); //200  代表获取服务器资源全部成功  206请求部分资源    
                if (code == 200) {
                    //(6)获取服务器返回的数据  以流的形式返回   
                    InputStream inputStream = conn.getInputStream();
                    
                    //(6.1)把inputstream 转换成 string 
                    String content = StreamTools.readStream(inputStream);
                    
                    
                    //(7)把服务器返回的数据展示到Toast上  不能在子线程展示toast
                    showToast(content);
                    
                    
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
        };}.start();
        
        
    }
上一篇 下一篇

猜你喜欢

热点阅读