HttpClient网络请求

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.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 {
                    // 定义一个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.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 {
                    // 创建一个客户端对象
                    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;
    };

}
购物商城项目采用PHP+mysql有以及html+css jq以及layer.js datatables bootstorap等插件等开发,采用了MVC模式,建立一个完善的电商系统,通过不同用户的不同需求,进行相应的调配和处理,提高对购买用户进行配置….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值