在线程中使用HttpClicent获取网络数据(get和post两种方式)

  <uses-permission android:name="android.permission.INTERNET"/>


xml

<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">

    <EditText
        android:id="@+id/et_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名" />
    <EditText
        android:id="@+id/et_password"
        android:layout_width="match_parent"
        android:password="true"
        android:layout_height="wrap_content"
        android:hint="请输入密码" />
    <Button
        android:onClick="getLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="get登陆"/>
    <Button
        android:onClick="postLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="post登陆"/>

</LinearLayout>


MAIN


package com.example.android_login;


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

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);
    }

    /**
     * get提交
     *
     * @param v
     */
    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.129: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 {
                    // 定义一个Http客户端对象
                    HttpClient httpClient = new DefaultHttpClient();
                    // 定义一个get请求的对象
                    HttpGet httpGet = new HttpGet(path);
                    // 执行get请求,获取响应
                    HttpResponse httpResponse = httpClient.execute(httpGet);
                    // 先获取状态行,再获取响应码
                    int statusCode = httpResponse.getStatusLine()
                            .getStatusCode();
                    if (statusCode == 200) {
                        // 请求成功
                        // 获取实体对象
                        HttpEntity entity = httpResponse.getEntity();
                        // 获取实体内容流
                        InputStream inputStream = entity.getContent();
                        String str = steamToStr(inputStream);
                        Message obtain = Message.obtain();
                        obtain.obj = str;
                        obtain.what = SUCCESS;
                        handler.sendMessage(obtain);
                    }
                } 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.129: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 {
                    // 创建一个客户端对象
                    HttpClient httpClient = new DefaultHttpClient();
                    // 创建post请求对象
                    HttpPost httpPost = new HttpPost(path);
                    // 创建一个参数的集合
                    List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
                    // 添加参数 键值对方式
                    parameters
                            .add(new BasicNameValuePair("username", username));
                    parameters
                            .add(new BasicNameValuePair("password", password));
                    // 实例化实体对象
                    HttpEntity httpEntity = new UrlEncodedFormEntity(parameters);
                    // 设置实体内容
                    httpPost.setEntity(httpEntity);
                    // 执行post请求 获取响应
                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    // 获取状态行对象
                    StatusLine statusLine = httpResponse.getStatusLine();
                    // 获取状态码
                    int statusCode = statusLine.getStatusCode();
                    if (statusCode == 200) {
                        // 获取实体对象
                        HttpEntity entity = httpResponse.getEntity();
                        // 获取实体内容
                        InputStream inputStream = entity.getContent();
                        //转成字符串
                        String str = steamToStr(inputStream);
                        //发送给主线程
                        Message obtain = Message.obtain();
                        obtain.obj = str;
                        obtain.what = SUCCESS;
                        handler.sendMessage(obtain);
                    }
                } 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;
    };

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据来源:数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通学学校数 等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通学专任教师数 等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通学在校生数 等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值