• Android之POST方法的使用


    java代码


    package xidian.dy.com.chujia;
    
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class MainActivity extends AppCompatActivity {
        String username;
        String password;
        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                Toast.makeText(MainActivity.this,(String)msg.obj, Toast.LENGTH_SHORT).show();
            }
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            Button submit = (Button) findViewById(R.id.submit);
            if(submit != null)
            submit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    EditText etuser = (EditText) findViewById(R.id.username);
                    EditText etpass = (EditText) findViewById(R.id.password);
                    if(etpass !=null && etuser != null){
                        username = etuser.getText().toString();
                        password = etpass.getText().toString();
                        Log.i("login_username", username);
                        Log.i("login_password", password);
                    }
                    login();
                }
            });
    
        }
        private void login(){
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        URL url = new URL("http://192.168.0.162/test.php");
                        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                        conn.setRequestMethod("POST");
                        conn.setConnectTimeout(5000);
                        conn.setReadTimeout(5000);
                        StringBuilder sb = new StringBuilder();
                        sb.append("username=").append(username).append("&password=").append(password);
                        conn.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
                        conn.setRequestProperty("Content-Length", sb.length()+"");
                        //打开输入流
                        conn.setDoOutput(true);
                        //建立连接
                        //建连接和打开流的顺序不能乱
                        conn.connect();
                        OutputStream os = conn.getOutputStream();
                        os.write(sb.toString().getBytes());
                        //获取服务器应答数据
                        if(conn.getResponseCode() == 200){
                           InputStream is = conn.getInputStream();
                            String text = Utils.getTextFromStream(is);
                            Message msg = handler.obtainMessage();
                            msg.obj = text;
                            handler.sendMessage(msg);
                            is.close();
                        }
                        os.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }
    
    }

    布局文件


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="xidian.dy.com.chujia.MainActivity">
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                    <TextView
                        android:id="@+id/usr"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="22sp"
                        android:text="用户名"/>
                    <EditText
                        android:id="@+id/username"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/usr"/>
            </RelativeLayout>
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                    <TextView
                        android:id="@+id/p"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="22sp"
                        android:text="密码"/>
                    <EditText
                        android:id="@+id/password"
                        android:inputType="textPassword"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/p"/>
            </RelativeLayout>
            <Button
                android:id="@+id/submit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="提交"/>
    
    </LinearLayout>

    工具类


    package xidian.dy.com.chujia;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    /**
     * Created by dy on 2016/6/28.
     */
    public class Utils {
    
        public static String getTextFromStream(InputStream is){
    
            byte[] b = new byte[1024];
            int len = 0;
            //创建字节数组输出流,读取输入流的文本数据时,同步把数据写入数组输出流
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            try {
                while((len = is.read(b)) != -1){
                    bos.write(b, 0, len);
                }
                //把字节数组输出流里的数据转换成字节数组
                String text = new String(bos.toByteArray());
                return text;
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }
    }

     

  • 相关阅读:
    CountUp.js让页面数字跳动起来
    easing.js让页面动画丰富起来
    jQuery Lightbox效果插件Boxer
    aos.js让页面滚动变得丰富
    nodejs formidable混合表单提交
    css常见水平居中
    css渐变知识知多少
    大整数相加 a+b 的c语言实现
    字符串连接
    typedef在C和C++的区别?
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5625335.html
Copyright © 2020-2023  润新知