JDK -GET,POST

GET

public class JDKActivity extends AppCompatActivity {

    EditText et1;
    RequestQueue requestQueue;
    //请求队列
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_jdk);
        et1=(EditText)findViewById(R.id.et1);
}
//显示结果
    String str = "";
    //JDK-GEt方式
    public void bt_1(View v)
    {
        //1-启动进度对话框
        final ProgressDialog pd = ProgressDialog.show(this,null,"请稍后……");

        //2-启动子线程,访问远程服务器
        new Thread()
        {
            @Override
            public void run() {
                //1-访问远程服务器
                //JDK GET
                HttpURLConnection huc=null;
                try {
                    //1-先构造URL对象
                    URL url = new URL("http://192.168.0.164:81/index.asp?name=mike&password=456");
                    //2-得到连接对象HttpURLConnection
                    huc= (HttpURLConnection)url.openConnection();
                    //3-设置HttpURLConnection
                    huc.setRequestMethod("GET");
                    huc.setConnectTimeout(3000);
                    huc.setReadTimeout(3000);
                    //4-连接远程服务器
                    huc.connect();
                    //5-接收响应报文的状态码
                    int code=huc.getResponseCode();
                    str = "";
                    //6-判断响应状态码,是否等于200
                    if (code==200)
                    {
                        //7-处理
                        //1-接收数据
                        //2-得到数据流
                        InputStream is = huc.getInputStream();
                        //读到的数据
                        byte[] b = new byte[1024];
                        //读到的数据长度
                        int i=0;
                        while ((i=is.read(b))>0)
                        {
                            //接收字符串
                            str +=new String(b,0, i);
                        }
                        is.close();
                    }
                    else
                    {
                        str="响应错误,错误码"+code;
                    }

                    //显示结果,不能直接跨线程访问主线程的视图
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            et1.setText(str);
                        }
                    });
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
                finally {
                    //8-关闭链接和进度对话框
                    //释放资源
                    if (huc!=null)
                    {
                        huc.disconnect();
                    }
                    //支持跨线程访问
                    pd.dismiss();
                }
            }
        }.start();
    }
View Code

 

POST

//JDK-POST方式
    public void bt_2(View v)
    {
        //1-启动进度对话框
        final ProgressDialog pd = ProgressDialog.show(this,null,"请稍后……");

        //2-启动子线程,访问远程服务器
        new Thread()
        {
            @Override
            public void run() {
                //1-访问远程服务器
                //JDK POST
                HttpURLConnection huc=null;
                try {
                    //1-先构造URL对象
                    URL url = new URL("http://192.168.0.164:81/index.asp");
                    //2-得到连接对象HttpURLConnection
                    huc= (HttpURLConnection)url.openConnection();
                    //3-设置HttpURLConnection
                    huc.setRequestMethod("POST");
                    huc.setConnectTimeout(3000);
                    huc.setReadTimeout(3000);

                    //4-连接远程服务器,输出流
                    huc.connect();
                    //数据放到请求集里
                    //1)得到输入流
                    OutputStream os=huc.getOutputStream();
                    String outstr="name=tom&password=123 ";
                    os.write(outstr.getBytes("UTF-8"));
                    //5-接收响应报文的状态码
                    int code=huc.getResponseCode();
                    str = "";
                    //6-判断响应状态码,是否等于200
                    if (code==200)
                    {
                        //7-处理
                        //1-接收数据
                        //2-得到数据流,输入流
                        InputStream is = huc.getInputStream();
                        //读到的数据
                        byte[] b = new byte[1024];
                        //读到的数据长度
                        int i=0;
                        while ((i=is.read(b))>0)
                        {
                            //接收字符串
                            str +=new String(b,0, i);
                        }
                        is.close();
                        os.close();
                    }
                    else
                    {
                        str="响应错误,错误码"+code;
                    }

                    //显示结果,不能直接跨线程访问主线程的视图
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            et1.setText(str);
                        }
                    });
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
                finally {
                    //8-关闭链接和进度对话框
                    //释放资源
                    if (huc!=null)
                    {
                        huc.disconnect();
                    }
                    //支持跨线程访问
                    pd.dismiss();
                }
            }
        }.start();


    }
View Code

posted @ 2016-06-15 08:58  百事没事  阅读(209)  评论(0编辑  收藏  举报