httpUrlConnection请求数据

package com.example.android_login;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    protected static final int SUCCESS = 1;
    private EditText et_username;
    private EditText et_password;
    Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
            case SUCCESS:
                String content = (String) msg.obj;
                Toast.makeText(MainActivity.this, content, 0).show();
                break;

            default:
                break;
            }
        };
    };

    // http://192.168.137.218:8080/LoginTest/servlet/LoginServlet?username=zhangsan&password=123
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_username = (EditText) findViewById(R.id.et_username);
        et_password = (EditText) findViewById(R.id.et_password);
    }

    public void getLogin(View v) {
        try {
            String password = et_password.getText().toString().trim();
            String username = et_username.getText().toString().trim();
            String path = "http://192.168.137.218:8080/LoginTest/servlet/LoginServlet?username="
                    + URLEncoder.encode(username, "utf-8")
                    + "&password="
                    + URLEncoder.encode(password, "utf-8");
            // get请求
            getLogin(path);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

    }

    private void getLogin(final String path) {
        new Thread() {
            public void run() {
                try {
                    URL url = new URL(path);
                    HttpURLConnection openConnection = (HttpURLConnection) url
                            .openConnection();
                    openConnection.setRequestMethod("GET");
                    openConnection.setConnectTimeout(5000);
                    openConnection.setReadTimeout(5000);
                    int responseCode = openConnection.getResponseCode();
                    if (responseCode == 200) {
                        // 获取内容
                        InputStream inputStream = openConnection
                                .getInputStream();
                        String str = steamToStr(inputStream);

                        Message msg = Message.obtain();
                        msg.obj = str;
                        msg.what = SUCCESS;
                        handler.sendMessage(msg);
                    } else {
                        // 发消息给主线程
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            };
        }.start();

    }

    public void postLogin(View v) {
        String password = et_password.getText().toString().trim();
        String username = et_username.getText().toString().trim();
        String path = "http://192.168.137.218:8080/LoginTest/servlet/LoginServlet";
        postLogin(path, username, password);

    }

    /**
     * post提交
     *
     * @param path
     * @param username
     * @param password
     */
    private void postLogin(final String path, final String username,
            final String password) {
        new Thread() {
            public void run() {
                try {
                    URL url = new URL(path);
                    // 打开一个连接
                    HttpURLConnection openConnection = (HttpURLConnection) url
                            .openConnection();
                    openConnection.setRequestMethod("POST");
                    openConnection.setConnectTimeout(5000);
                    openConnection.setReadTimeout(5000);
                    // username=zhangsan&password=123
                    // 要传递的数据
                    String data = "username="
                            + URLEncoder.encode(username, "utf-8")
                            + "&password="
                            + URLEncoder.encode(password, "utf-8");
                    // 设置要提交数据
                    openConnection.setDoOutput(true);
                    // 设置请求的一个属性 -内容的大小
                    openConnection.setRequestProperty("Content-Length",
                            data.length() + "");
                    // 设置请求的类型的一个属性
                    openConnection.setRequestProperty("Content-Type",
                            "application/x-www-form-urlencoded");
                    // 获取一个输出流
                    OutputStream outputStream = openConnection
                            .getOutputStream();
                    // 通过输出流写内容
                    outputStream.write(data.getBytes());
                    int responseCode = openConnection.getResponseCode();
                    if(responseCode==200){
                        InputStream inputStream = openConnection.getInputStream();
                        String steamToStr = steamToStr(inputStream);
                        Message msg = Message.obtain();
                        msg.obj = steamToStr;
                        msg.what = SUCCESS;
                        handler.sendMessage(msg);
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
            };
        }.start();
    }

    /**
     * 将输入流转成字符串
     *
     * @param inputStream
     * @return
     * @throws IOException
     */
    private String steamToStr(InputStream inputStream) throws IOException {
        ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();

        byte[] buffer = new byte[1024];
        int len = 0;

        while ((len = inputStream.read(buffer)) != -1) {
            arrayOutputStream.write(buffer, 0, len);
        }
        String content = arrayOutputStream.toString();
        return content;
    };

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值