1. 程式人生 > >Android Studio中使用開源庫volley進行網路訪問簡單示例

Android Studio中使用開源庫volley進行網路訪問簡單示例

volley特性 :

   1>使用volley開源庫進行網路訪問,使網路訪問更簡單,快速,健壯

   2>可以將網路訪問與activity生命週期相關聯

1.環境

    AndroidStudio 2.1正式版

   volley.jar

   關於將volley.jar匯入androidStudio網上有很多教程,很簡單,此處省略

2.開始使用volley庫進行網路訪問

    1> 建立一個訪問佇列

<span style="font-size:18px;">package com.example.zhaoyun.usingvolley;

import android.app.Application;

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

//建立一個請求佇列

public class Myapplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        //初始化一個請求佇列
        queue = Volley.newRequestQueue(this);
    }

    //外部可以通過這個方法獲取請求佇列
    public static RequestQueue getHttpQueue(){
        return queue;
    }

    public static RequestQueue queue;
}</span>

    2>建立一個GET,POST請求並新增到佇列裡進行網路請求,並在activity退出時停止網路訪問

package com.example.zhaoyun.usingvolley;

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

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 MainActivity extends AppCompatActivity {

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

        btnRequest = (Button) findViewById(R.id.btnRequest);
        btnRequest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                volley_Post();
            }
        });
    }

    //建立一個Get請求
    private void volley_Get(){

        //Get方式訪問時須將請求引數寫在url裡
        String url = "http://10.150.249.211:8080/TestServer/api.jsp?action=login&machine_id=1&";
        StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {//請求成功回撥

                Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();

            }
        }, new Response.ErrorListener() {//請求失敗回撥
            @Override
            public void onErrorResponse(VolleyError volleyError) {

                Toast.makeText(MainActivity.this,"請求失敗",Toast.LENGTH_SHORT).show();

            }
        });

        //設定請求標籤
        request.setTag("abcGet");
        //將請求新增到佇列
        Myapplication.getHttpQueue().add(request);
    }

    //建立一個Post請求
    private void volley_Post(){
        String url = "http://10.150.249.211:8080/TestServer/api.jsp";
        StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {//請求成功回撥

                Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {//請求失敗回撥

                Toast.makeText(MainActivity.this,"請求失敗",Toast.LENGTH_SHORT).show();

            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {//建立請求引數

                HashMap<String,String> map = new HashMap<String, String>();
                map.put("action","login");
                map.put("machine_id","1");

                return map;
            }
        };

        request.setTag("abcPost");
        Myapplication.getHttpQueue().add(request);
    }

    //volley特性二:可以與activity生命週期相關聯
    @Override
    protected void onStop() {
        super.onStop();

        //通過前面設定的Tag,取消建立的volley_Get請求
        Myapplication.getHttpQueue().cancelAll("abcGet");
        //通過前面設定的Tag,取消建立的volley_Post請求
        Myapplication.getHttpQueue().cancelAll("abcPost");
    }

    private Button btnRequest;
}

    3>測試:本示例使用一個Button點選進行網路訪問來進行測試,示例中的url是我在另一個Demo裡寫的本地測試伺服器的url,結果用Toast展示

         

相關推薦

Android Studio使用開源volley進行網路訪問簡單示例

volley特性 :    1>使用volley開源庫進行網路訪問,使網路訪問更簡單,快速,健壯    2>可以將網路訪問與activity生命週期相關聯 1.環境     AndroidStudio 2.1正式版    volley.jar    關於將vol

Android studioGit的學習和使用心得(二)在Android studio如何使用Git進行程式碼回退與再提交

這篇部落格是上篇部落格的進階,針對Android studio常用的Git使用情景進行總結。上篇部落格連結https://blog.csdn.net/qq_34820468/article/details/83416326。 下面我們來學習Android stu

Android Studioso的建立與使用、jar(jar呼叫so)的建立與使用(一)

工程下載https://download.csdn.net/download/cnicfhnui/10422621一、Android Studio 建立so庫,呼叫so庫第一步先下載NDK開發包,下載地址:https://developer.android.google.cn

Android Studio使用開源的操作

第一次寫部落格。之前很有志氣想自己搭一個,然而沒時間沒實力,乖乖來到滿面廣告的CSDN了。。。 目前在開發個人Android專案,Dribbble客戶端。現在要把開發過程中遇到的問題全數記錄下來,以便日後回顧,鞏固知識面,增強操作熟練度。 今天算是第一次真正使用Andro

Android Studio進行單元測試

term pack jsb java 測試的 dep create stat multi 在Android開發過程中,我們往往忽略了單元測試功能, 主要還能還是大家覺得 真機在手,運行調試特別直觀。 不過如果我們能夠養成單元測試的習慣,相信能更加提升我們應用開發的速度。

Android Studio進行NDK開發的一般流程

1 在類中宣告native方法 2 在 app/src/main 下建立 jni 目錄 3 在 app/src/main/java 下執行命令 javah -jni -d ../jni com.path2class.ClassName 4 在 app/src/main/jni

如何在Android studio以compile直接依賴GitHub上的

如何讓自己的專案以compile直接依賴GitHub上的庫,先看看引用方式: dependencies { compile 'com.github.helloworldjie:TestProj1:0.4' } compile 'com.github.helloworldjie:Te

Android Studio進行UI測試

一、build.gradle 中配置 在defaultConfig中新增 testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” 在dependenc

Android studio檢視Device File Explorer,並使用sqlit3對資料庫進行操作

首先確保手機與電腦進行連線,手機屬於開發者模式。開啟Android studio找到view,點選view找到“Tool Windows ”,將滑鼠指向“Tool Windows”後找到"Device File Explorer".點選後就可以進行檢視。若想對其中的sqlit

Android studio 引入第三方(github開源

現在github越來越火,也是個人的招牌了。很多很好的公開庫,都可以直接使用,可以使自己的app效果更加的炫,還可以縮短開發週期。 這裡就主要說下,如何匯入github上的專案,並如何引用。一開始匯入,會遇到挺多問題,也不知道咋處理,慢慢摸索了兩天,終於弄好了。 一、下載g

Android Studio匯入第三方工程的方法

1.下載所需庫工程,此處以httpzoid為例子,在工程根目錄下建立一個extras資料夾用於存放庫工程。將httpzoid放到extras目錄中 2.專案上點選右鍵開啟Open Module Settings,點選紅框中的加號新增一個module 選擇匯入庫工程

android studio使用第三方so(終結版)

    安卓開發中,經常會用到第三方C++庫,然後不知道是我對系統不熟悉的原因,還是安卓支援C++開發本來就比較弱,反正其中踩了很多坑。     android studio 版本 3.0.1,  在PC上安裝android studio3.1.2,就是配置不成功,後面再筆

Android studio使用greenDao開源框架

Android studio中使用greenDao。 之前在eclipse上使用過GreenDao開源專案,現在想在Android studio的專案中同樣使用GreenDao專案應該怎麼做?(前提是你以對Android studio做了些功課. 首先

android studio 判斷是否有網路,並且跳轉到設定網路介面的工具類

在使用app的情況下,我們需要判斷使用者是否有網路,並提示跳轉到設定網路的介面,可以封裝成一個工具類(判斷是否有網) public boolean isConn(Context context){ //1.得到網路管理類  ConnectivityManager manag

Android Studio上使用GSON+VOLLEY,秒處理網路資料成集合。感受框架的力量。搭配RecyclerView和SwipeRefreshLayout,實現底端載入更多,下拉重新整理。

【致謝,引用,宣告,前言】 關於GSON和VOLLEY,我百度了很多資料,個人感覺有兩篇部落格介紹的特別好,附上鍊接咯:   GSON: http://blog.csdn.net/lk_blog/article/details/7685169  VOLLEY:http://

ok_gradle,一款可以在android studio搜索第三方的compile外掛

ok,gradle是一款在可以讓你不離開android studio,也能搜尋到 在gradle新增第三方庫的地址的外掛 使用方法 開啟android studio 中的setting

Android Studio如何建立自己的

一般博主寫東西時,總喜歡嘮叨,我在這裡就省去了,下面直接進入主題。 之前我們引入別人的專案作為類庫較為簡單,但自己建立類庫會有很多細節,說多了,就是淚,總之,就是gradle的配置,希望有時間大家好好去看看,這樣你在Android 的程式設計上會少走很多

android studio jni底層日誌的打印

添加 註意 erro ldl end 1.0 dto 字符 ati 1 添加ndk對log支持若需要添加ndk對log的支持,只需要通過以下2步即可實現。 1.1 修改Android.mk如生成的庫文件是“.so文件”,則在Android.mk中添加如下內容:LOCAL_L

android studio配置X5 webview時的一個坑

這也 default ips build 找到 沒有 androi lte sed 在接入X5的第二步中,需要配置so文件,這裏說一下遇到的坑 1. 需要把demo下載回來,不然你找不到so文件,找到so文件後放到自己相對應的目錄下邊,自己裏面那個目錄也沒有,所以和文件夾一