Android Volley框架的简单get和post demo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/AmazingUU/article/details/51955904

最近学习了网络通信方面的知识,了解到Volley网络框架,相比于Httpclient要简单很多。

https://github.com/mcxiaoke/android-volley

Gradle

compile 'com.mcxiaoke.volley:library:1.0.19'

MainActivity:

package com.example.administrator.myapplication;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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.util.HashMap;
import java.util.Map;

public class MainActivity extends ActionBarActivity {
    private Button btn_postHttp, btn_get;
    private TextView tvResponse;
    private RequestQueue mQueue = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_postHttp = (Button) findViewById(R.id.btn_post);
        tvResponse = (TextView) findViewById(R.id.textView);
        mQueue = Volley.newRequestQueue(getApplicationContext());
        btn_postHttp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                StringRequest stringRequest = new StringRequest(Request.Method.POST, "urlName",
                        new Response.Listener<String>() {//urlName改为网站提供的接口
                            @Override
                            public void onResponse(String response) {
                                Log.d("TAG", response);
                                tvResponse.setText(response);
                            }
                        }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("TAG", error.getMessage(), error);
                    }
                }) {
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String, String> map = new HashMap<String, String>();
                        map.put("str", "test");
                        return map;
                    }
                };
                mQueue.add(stringRequest);
            }
        });

        btn_get = (Button) findViewById(R.id.btn_get);
        btn_get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                StringRequest stringRequest = new StringRequest("http://www.baidu.com",
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                tvResponse.setText(response);
                            }

                        }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.d("error","请求错误:" + error.toString());
                    }
                });

                mQueue.add(stringRequest);
            }
        });
    }
}

activity_main

<?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="com.example.administrator.myapplication.MainActivity">


    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="get"
        android:id="@+id/btn_get" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="post"
        android:id="@+id/btn_post"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView"
        android:layout_gravity="center_vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:id="@+id/textView" />
    </ScrollView>
</LinearLayout>

效果图:

这里写图片描述

这里写图片描述

P.S.:
Josn格式的也可以写在StringRequest里,只要将Map改一下就可以了

@Override
            protected Map<String, String> getParams() throws AuthFailureError {

                JSONObject jsonObject = new JSONObject();
                try {
                    jsonObject.put("userId", Integer.parseInt(tvId.getText().toString()));
                    jsonObject.put("addTime", System.currentTimeMillis());
                    jsonObject.put("bt", Float.parseFloat(tvTempture.getText().toString()));
                    jsonObject.put("hr", Integer.parseInt(tvHeartBeat.getText().toString()));
                    jsonObject.put("danger", false);
                } catch (Exception e) {
                    Log.d("tag", e + "");
                }
                Map<String, String> map = new HashMap<String, String>();
                map.put("jsonParameter", jsonObject.toString());
                return map;
            }

猜你喜欢

转载自blog.csdn.net/AmazingUU/article/details/51955904