码迷,mamicode.com
首页 > 其他好文 > 详细

Volley框架的使用一

时间:2015-08-30 23:11:49      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:requestque   volley   框架   

1、下载Volley框架包

百度云链接

2、创建一个RequestQueue对象

技术分享

MyApplication.java

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
import android.app.Application;

public class MyApplication extends Application {
      public static RequestQueue queues;

        @Override
        public void onCreate(){
            super.onCreate();
            queues= Volley.newRequestQueue(getApplicationContext());

        }

        public static RequestQueue getHttpQueues(){
            return queues;
        }
}

3、Post提交方式

MainActivity.java

import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

import com.android.volley.Request.Method;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.AuthFailureError;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        volley_Post();
    }

    // 使用Post的方式
    private void volley_Post() {
        String url = "http://apis.juhe.cn/mobile/get?";
        /**
         * 第一个参数:提交方式
         * 第二个参数:URL
         * 第三个参数:服务器响应成功的回调
         * 第四个参数:第三个参数是服务器响应失败的回调
         */
        StringRequest request = new StringRequest(Method.POST, url,
                new Listener<String>() {
                    // 数据返回的时候,返回是以json返回的
                    @Override
                    public void onResponse(String arg0) {
                        Toast.makeText(MainActivity.this, arg0,
                                Toast.LENGTH_LONG).show();
                    }

                }, new ErrorListener() {
                    //数据返回出错
                    @Override
                    public void onErrorResponse(VolleyError arg0) {
                        Toast.makeText(MainActivity.this, arg0.toString(),
                                Toast.LENGTH_LONG).show();

                    }
                }) {
            //Post方式提交的参数
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> map = new HashMap<String, String>();
                map.put("phone", "15678951111");
                map.put("key", "a68030dd94b0ca6430044505a70ec73f");
                return map;
            }
        };

        request.setTag("Post");
        MyApplication.getHttpQueues().add(request);
    }

}

4、AndroidManifest设置权限等

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.imooc.volley"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />
    <!-- 网络权限 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!-- android:name全局都要用到的MyApplication类 -->
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"         
        android:name="com.imooc.volley.MyApplication"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

5、Get提交方式

其区别只在于MainActivity的设置

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         volley_Get();
    }

      private void volley_Get() {
          //URL中包含参数
            String url="http://apis.juhe.cn/mobile/get?phone=15658132456&key=a68030dd94b0ca6430044505a70ec73f";
            /**
             * 第一个参数:提交方式
             * 第二个参数:URL
             * 第三个参数:服务器响应成功的回调
             * 第四个参数:第三个参数是服务器响应失败的回调
             */
            StringRequest request=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
                // 数据返回的时候,返回是以json返回的
                @Override
                public void onResponse(String response) {
                    Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();

                }
            });

            request.setTag("Get");
            MyApplication.getHttpQueues().add(request);
        }
}

6、 JsonRequest方式

MainActivity.java

private void volley_Post() {
        String url = "http://apis.juhe.cn/mobile/get?";
        Map<String, String> map = new HashMap<String, String>();
        map.put("phone", "15658132456");
        map.put("key", "a68030dd94b0ca6430044505a70ec73f");
        //转化为json格式
        JSONObject object = new JSONObject(map);
        /**
         * 第一个参数是数据传递方式
         * 第二个参数是URL
         * 第三个参数是参数(json)
         * 第四个参数是服务器响应成功的回调 
         * 第五个参数是服务器响应失败的回调 
         */
        JsonObjectRequest objectRequest = new JsonObjectRequest(Method.POST,
                url, object, new Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject arg0) {
                        Toast.makeText(MainActivity.this, arg0.toString(),
                                Toast.LENGTH_LONG).show();
                    }
                }, new ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError arg0) {
                        Toast.makeText(MainActivity.this, arg0.toString(),
                                Toast.LENGTH_LONG).show();
                    }
                });
        objectRequest.setTag("Post");
        MyApplication.getHttpQueues().add(objectRequest);
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Volley框架的使用一

标签:requestque   volley   框架   

原文地址:http://blog.csdn.net/u012150370/article/details/48110561

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!