在操作Volley的时候先添加volley.jar(包)

<uses-permission android:name="android.permission.INTERNET"/>(权限)

wep.xml

<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.hanqi.application3.WebActivity"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/et_5"
        android:hint="url地址"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="JDK的get方式"
            android:onClick="bt55_onclick"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="JDK的pose方式"
            android:onClick="bt66_onclick"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Android的get方式"
            android:onClick="bt77_onclick"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Android的pose方式"
            android:onClick="bt88_onclick"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Volley的get方式"
            android:onClick="bt99_onclick"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Volley的pose方式"
            android:onClick="bt100_onclick"/>
    </LinearLayout>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:id="@+id/et_6"/>
</LinearLayout>

WepActivity.java

package com.hanqi.application3;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

public class WebActivity extends AppCompatActivity {

    EditText et5;
    EditText et6;
    RequestQueue requestQueue;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);

        et5 = (EditText)findViewById(R.id.et_5);
        et5.setText("http://192.168.0.101:8080/TestWeb/index.jsp");
        et6 = (EditText)findViewById(R.id.et_6);
        //获取Volley的请求队列
        requestQueue = Volley.newRequestQueue(this);

    }
    //1.在子线程访问网络
    //2.提供进度对话框
    //3.设置权限
    public void bt66_onclick(View v)
    {
        //1.显示ProgressDialog进度对话框
        final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
        //2.访问网络,启动分线程
         new Thread() {
             //3. 在分线程, 发送请求, 得到响应数据
             @Override
             public void run() {

                 try {
                    //1-URL
                     URL url = new URL(et5.getText().toString());
                    //2-URL获取链接
                     HttpURLConnection huc= (HttpURLConnection)url.openConnection();
                     //请求方式
                     huc.setRequestMethod("POST");
                     //设置超时
                     huc.setConnectTimeout(5000);
                     huc.setReadTimeout(5000);
                     //链接并发送请求
                     huc.connect();
                     //用输出流设置请求体
                     OutputStream os = huc.getOutputStream();
                     String str = "name=Rose";
                     os.write(str.getBytes("UTF-8"));


                     //接收:
                     //判断返回状态码 200
                     int code = huc.getResponseCode();

                     if(code == 200)
                     {
                         //接收数据

                         //输入流:
                         InputStream is = huc.getInputStream();
                         //读取流
                         //1-byte数据
                         byte[] b= new byte[1024];
                         //2-读到数组的长度
                         int i = 0;
                         //3-数据
                         final StringBuffer sd1 = new StringBuffer();
                         while ((i=is.read(b))>0)
                         {
                             sd1.append(new String(b,0,i));
                         }
                         is.close();
                         huc.disconnect();
                         //释放资源
                         //通过主线程信息和关闭对话框
                         runOnUiThread(new Runnable() {
                             @Override
                             public void run() {
                                 et6.setText(sd1);

                                 dialog.dismiss();
                             }
                         });


                     }
                     else {
                         Toast.makeText(WebActivity.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show();
                     }
                     os.close();

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

                     dialog.dismiss();

                 }
             }
         }.start();
    }
    public void bt55_onclick(View v)
    {
        //1.显示ProgressDialog进度对话框
        final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
        //2.访问网络,启动分线程
        new Thread() {
            //3. 在分线程, 发送请求, 得到响应数据
            @Override
            public void run() {

                try {
                    //1-URL
                    URL url = new URL(et5.getText().toString() + "?name=Tom1&age=11");
                    //2-URL获取链接
                    HttpURLConnection huc= (HttpURLConnection)url.openConnection();
                    //请求方式
                    huc.setRequestMethod("GET");
                    //设置超时
                    huc.setConnectTimeout(3000);
                    huc.setReadTimeout(3000);
                    //链接并发送请求
                    huc.connect();
                    //接收:
                    //判断返回状态码 200
                    int code = huc.getResponseCode();

                    if(code == 200)
                    {
                        //接收数据

                        //输入流:
                        InputStream is = huc.getInputStream();
                        //读取流
                        //1-byte数据
                        byte[] b= new byte[1024];
                        //2-读到数组的长度
                        int i = 0;
                        //3-数据
                        final StringBuffer sd1 = new StringBuffer();
                        while ((i=is.read(b))>0)
                        {
                            sd1.append(new String(b,0,i));
                        }
                        is.close();
                        huc.disconnect();
                        //释放资源
                        //通过主线程信息和关闭对话框
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                et6.setText(sd1);

                                dialog.dismiss();
                            }
                        });


                    }
                    else {
                        Toast.makeText(WebActivity.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show();
                    }
                    //接收数据


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

                    dialog.dismiss();

                }
            }
        }.start();
    }
    public void bt77_onclick(View v)
    {
        final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");


    }
    public void bt99_onclick(View v)
    {
        final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
        //构造Volley的请求对象
        StringRequest sr = new StringRequest(et5.getText().toString() + "?name=jack", new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                et6.setText(s);
                dialog.dismiss();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Toast.makeText(WebActivity.this, "访问出现异常", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        });
        //把请求对象放入队列
        requestQueue.add(sr);
    }
    public void bt100_onclick(View v)
    {
        final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
        //构造Volley的请求对象
        StringRequest sr = new StringRequest(Request.Method.POST,et5.getText().toString(), new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                et6.setText(s);
                dialog.dismiss();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                Toast.makeText(WebActivity.this, "访问出现异常", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        }){
            //重写设置参数的方法
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> m = new HashMap<String,String>();
                m.put("name","Volley");
                return m;
            }
        };
        //把请求对象放入队列
        requestQueue.add(sr);
    }
}

 

posted on 2016-04-21 22:24  让心开始  阅读(297)  评论(0编辑  收藏  举报