volley的使用
来源:互联网 发布:windows.onload事件 编辑:程序博客网 时间:2024/06/10 01:16
首相要创建项目加上依赖compile 'eu.the4thfloor.volley:com.android.volley:2015.05.28'
定义自己的app
package alice.bw.com.day12volley;import android.app.Application;import com.android.volley.RequestQueue;import com.android.volley.toolbox.Volley;/** * @author alice * @version 1.0 * @Date 2017/10/12 20:33 */public class MyApp extends Application { // 只能有一个 静态 单例 等等 请求队列 private static RequestQueue requestQueue; @Override public void onCreate() { super.onCreate(); // 初始化一个 请求队列 Volley 建议 每个 app 只有一个 请求队列 requestQueue = Volley.newRequestQueue(getApplicationContext()); } public static RequestQueue getRequestQueue() { return requestQueue; }}在我们的清单文件中使用自定义的app
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="alice.bw.com.day12volley"> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:name=".MyApp" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application></manifest>
在我们的主布局中
<?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:orientation="vertical" tools:context="alice.bw.com.day12volley.MainActivity"> <Button android:id="@+id/get_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="Get网络请求" /> <Button android:id="@+id/post_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="Post网络请求" /> <Button android:id="@+id/object_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="Object网络请求" /> <Button android:id="@+id/array_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="Array网络请求" /> <ImageView android:id="@+id/show_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
在我们的主Activity中package alice.bw.com.day12volley;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;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.JsonObjectRequest;import com.android.volley.toolbox.StringRequest;import org.json.JSONObject;import java.util.HashMap;import java.util.Map;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view) { switch (view.getId()){ case R.id.get_bt: String path = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1"; /* 第一个参数 : 请求方式 GET POST 第二个参数 : 请求的 url 第三个参数: 请求成功的 监听器 第四个参数 请求失败的监听器 */ final StringRequest request = new StringRequest(Request.Method.GET, String.format(path, 1), new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("sxl", "onResponse: " + response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("sxl", "onErrorResponse: " + error); } }); StringRequest request2 = new StringRequest(Request.Method.GET, String.format(path, 1), new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("sxl", "onResponse2: " + response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("sxl", "onErrorResponse2: " + error); } }); // 添加Tag 作为标记 可以根据该标记将这个请求取消掉 request2.setTag("cancel"); request.setTag("cancel"); // 将此次请求添加到 请求队列中 多个请求添加到 队列中会按照顺序执行 MyApp.getRequestQueue().add(request2); MyApp.getRequestQueue().add(request); break; case R.id.post_bt: //post提交的字段:pageNo=1&pageSize=20&serialIds=2143,3404&v=4.0.0 String pathPost = "http://mrobot.pcauto.com.cn/v2/cms/channels/1?"; StringRequest postRequest = new StringRequest(Request.Method.POST, pathPost, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d("sxl", "onResponse——post: " + response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("sxl", "onErrorResponse: "); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { // pageNo=1&pageSize=20&serialIds=2143,3404&v=4.0.0 // 该方法用来拼字段表单 Map<String, String> map = new HashMap<String, String>(); map.put("pageNo", "1"); map.put("pageSize", "20"); map.put("serialIds", "2143,3404"); map.put("v", "4.0.0"); return map; } }; // 所有请求 都必须添加到队列中才执行 MyApp.getRequestQueue().add(postRequest); break; case R.id.object_bt: String object_path = "http://mrobot.pcauto.com.cn/v2/cms/channels/1?pageNo=1&pageSize=20&serialIds=2143,3404&v=4.0.0"; JsonObjectRequest objectRequest = new JsonObjectRequest(object_path, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("sxl", "onResponseObjevt: " + response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("sxl", "onErrorResponse: "); } }); MyApp.getRequestQueue().add(objectRequest); break; case R.id.array_bt: // JsonArrayRequest arrayRequest = new JsonArrayRequest() break; } } @Override protected void onDestroy() { super.onDestroy(); // 取消标记为 cancel 的 请求 MyApp.getRequestQueue().cancelAll("cancel"); }}
阅读全文
0 0
- Volley的初步使用
- Volley框架的使用
- volley的详细使用
- volley的使用
- Volley的使用详解
- volley的简单使用
- Volley的使用笔记
- Volley 使用的缓存
- Volley框架的使用
- Volley的使用
- Volley的使用
- Volley的基本使用
- Volley框架的使用
- Volley框架的使用
- volley的使用
- Volley框架的使用
- Volley的基本使用
- Volley的简单使用
- Python学习笔记:七 银行管理系统
- Google C++命名规范
- Wannafly模拟赛4 CSum(线段树)
- JS五种运算符,运算符的优先级
- java 函数参数的传递方式说明(string、 引用类型、基本类型)
- volley的使用
- C#装箱和拆箱
- Leetcode 330. Patching Array
- struts2 做分页
- B. Maximum of Maximums of Minimums --codeforces
- BZOJ4350: 括号序列再战猪猪侠(区间DP)
- http(动词、状态码)以及为什么会有session和cookie
- 开发工具汉化
- 简述 JavaScript 作用域与词法分析