使用HttpPost请求方式调用服务器

来源:互联网 发布:js判断输入框是否为空 编辑:程序博客网 时间:2024/05/16 08:25

MainActivity中:

package com.zhidi.httppost;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStream;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.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {    private EditText et_username;    private EditText et_password;    private Button bt_show;    String result="";    /**post请求URL地址*/    private static final String URL="http://192.168.2.3:8080/test/servlet/LoginServlet";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();        bt_show.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                //android4.0后的新的特性,网络数据请求时不能放在主线程中。                //9、使用线程执行访问服务器,获取返回信息后通知主线程更新UI或者提示信息。                final Handler handler = new Handler() {                    @Override                      public void handleMessage(Message msg) {                          if (msg.what == 1) {                            //8、提示读取结果                            Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();                        }                      }                  };                // 启动线程来执行任务                  new Thread() {                      public void run() {                        //请求网络                        loginByPost(et_username.getText().toString(), et_password.getText().toString());                         Message m = new Message();                          m.what = 1;                          // 发送消息到Handler                          handler.sendMessage(m);                      }                  }.start();            }        });    }    private void init(){        et_username=(EditText)findViewById(R.id.et_username);        et_password=(EditText)findViewById(R.id.et_password);        bt_show=(Button)findViewById(R.id.bt_login);    }    /**     * 请求后台,判断登录结果。     * @param username     * @param password     */    public void loginByPost(String username, String password) {          try {             //1、根据地址创建URL对象(网络访问的url)              URL url = new URL(URL);              //2、url.openConnection()打开网络链接              HttpURLConnection conn = (HttpURLConnection)url.openConnection();              //3、设置请求的方式              conn.setRequestMethod("POST");             conn.setDoInput(true);//发送POST请求必须设置允许输出            conn.setDoOutput(true);//发送POST请求必须设置允许输入            //4、设置请求的头            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");            conn.setRequestProperty("Charset", "utf-8");            String data = "username=" + URLEncoder.encode(username, "UTF-8")                      + "&password=" + URLEncoder.encode(password, "UTF-8");//传递的数据            conn.setRequestProperty("Content-Length",String.valueOf(data.getBytes().length));             //5、获取输出流             OutputStream os = conn.getOutputStream();              os.write(data.getBytes());              os.flush();             //6、获取响应的输入流对象            InputStreamReader is = new InputStreamReader(conn.getInputStream());            BufferedReader bufferedReader = new BufferedReader(is);            StringBuffer strBuffer = new StringBuffer();            String line = null;            //7、读取服务器返回信息            while ((line = bufferedReader.readLine()) != null) {                strBuffer.append(line);            }            result = strBuffer.toString();            //8、关闭InputStream、关闭http连接            is.close();            conn.disconnect();        } catch (Exception e) {              e.printStackTrace();          }      }}

AndroidManifest中注册网络权限
<uses-permission android:name="android.permission.INTERNET"/>

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两家为了带孩子闹翻了怎么办啊? 抵押后租赁的房屋被法院拍卖怎么办 房子买20年了没有过户怎么办 二手车没过户行驶证丢了怎么办 买的二手车行驶证丢了怎么办 在京东仓库做事把东西损坏了怎么办 微信显示该账号登陆环境异常怎么办 干洗店把衣服洗坏了怎么办 千牛上怎么改淘宝密码忘记了怎么办 公司收了代理商押金到期不退怎么办 淘宝显示签收但是我没收到货怎么办 淘宝东西没收到显示签收了怎么办 开拼多多店铺的密码忘了怎么办 拼多多密码跟店铺名忘了怎么办 闲鱼上卖出的宝贝被调包了怎么办 上传身份证照片说格式错误该怎么办 我给厂里打的款不给发货怎么办 净值接近不定期份额折算阀值怎么办 有锁电信4g掉了怎么办 在电脑中找不到想作废的发票怎么办 科目三补考费发票丢了怎么办 母婴店飞鹤奶粉突然厂家撤货怎么办 澳门买的保健品感觉是假的怎么办 淘宝买东西提交需求时卡死了怎么办 天猫精灵显示为离线状态怎么办 退货多被淘宝店铺拉入黑名单怎么办 天猫订单3天不发货怎么办 新开的厨卫店越来越没生意怎么办 淘宝积分不够领不到购物津贴怎么办 穿越火线精英集结号积分不足怎么办 天猫购物津贴领多了怎么办 车贷逾期车被开走还不清全款怎么办 孩子特别懒不爱动又胖怎么办 微信的聊天记录被限制了怎么办 门面租金交了一年对方不租了怎么办 离职后社保怎么办 无忧保专业可靠 淘宝店铺被投诉到监管局怎么办 淘宝买家每天都来店铺骚扰怎么办 电脑安装软件时解压出现问题怎么办 公婆不尊重你的父母做媳妇的怎么办 手机扣扣接收不上文件怎么办