Volley联网开源框架

来源:互联网 发布:edrawmax mac 注册码 编辑:程序博客网 时间:2024/05/01 14:25

Volley联网开源框架是一种联网获取数据的框架,他适合小型的数据获取,Volley分为两种获取方法,get和post请求。get是直接请求数据,post需要传入数值给网络获取相应的数据。使用他需要一个jar包!

以下是我自己写的Volley开源框架的类:


package com.example.imageloader;


import android.content.Context;


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


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


public class Volley_LianWang {

public static void volley_Get(String url,final WangLuo_HuiDiao huiDiao,Context context){//GET请求
StringRequest stringReque=new StringRequest(url,new Response.Listener<String>() {


@Override
public void onResponse(String data) {
// 联网成功
huiDiao.getData(data);
//使用回掉接口
}
}, new Response.ErrorListener() {


@Override
public void onErrorResponse(VolleyError arg0) {
// 联网失败
}
});
stringReque.setTag("get");
PublicApplication.getRequestQueue(context).add(stringReque);
}
public static void volley_Post (String url,final WangLuo_HuiDiao huiDiao,final HashMap<String, String> myMap,Context context){
StringRequest stringRe=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {


@Override
public void onResponse(String data) {
// 联网成功
huiDiao.getData(data);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// 联网失败
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
//给服务器一个HasMap
return myMap;
}
};
stringRe.setTag("post");
PublicApplication.getRequestQueue(context).add(stringRe);
}


}


***********************************************************************


package com.example.imageloader;


import android.app.Application;
import android.app.ProgressDialog;
import android.content.Context;


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


public class PublicApplication extends Application {
public static PublicApplication pApp;
public static  RequestQueue requestQueue;
public static ProgressDialog progressDialog;
@Override
public void onCreate() {
pApp = this;
}
public static RequestQueue getRequestQueue(Context context){
if (requestQueue==null) {
requestQueue = Volley.newRequestQueue(context);
}
return requestQueue;
}
public static ProgressDialog getProgressDialog(Context context) {
progressDialog=new ProgressDialog(context);
return progressDialog;
}

}


********************************************************************************************


package com.example.imageloader;


public interface WangLuo_HuiDiao {
public void getData(String data);


}

******************************************************************************************************

*********************************************************************************************************

用以上3个类直接就可以在主方法里调用就行了

  Volley_LianWang.volley_Get("http://guaju.github.io/imageloadertest.html", new WangLuo_HuiDiao() {
            @Override
            public void getData(String data) {
                System.out.print("******************");
                try {
                    System.out.print("******************");
                    JSONObject jsonObject = new JSONObject(data);
                    JSONArray j= (JSONArray) jsonObject.get("data");
                    for (int i=0;i>j.length();i++){
                        JSONObject jj= (JSONObject) j.get(i);
                        JSONObject jjj= (JSONObject) jj.get("person");
                        String ss= (String) jjj.get("imgurl");
                        System.out.print("*****************"+ss);
                        a.add(ss);
                    }
                    lv.setAdapter(abc);


                }
                catch(Exception e){


                }


            }
        },this);


HashMap<String, String>map = new HashMap<String, String>();
        map.put("menu", "川菜");
        map.put("key", "755b97454ec4a4c55d926ece747e86d9");
        Volley_LianWang.volley_Post("http://apis.juhe.cn/cook/query.php", new WangLuo_HuiDiao() {

@Override
public void getData(String data) {
System.out.println(data);

}
},map , this);



一定要在清单文件注册android:name="us.mifeng.bubaexaminationsystem.app.PublicApplication"

<application
        android:allowBackup="true"
        android:icon="@drawable/timg"
        android:label="@string/app_name"
        android:name="us.mifeng.bubaexaminationsystem.app.PublicApplication"
        android:theme="@android:style/Theme.Light.NoTitleBar" >

0 0
原创粉丝点击