您的位置:首页 > 其它

远程服务器存储之框架方式的get和post请求方式

2016-06-14 22:25 363 查看
一.Volley

1.特点

1-轻量级的Android网络通信库

2-适合数量不大但通信频繁的场景

2.API

1-RequestQueue

1>请求队列

2>Volley.newRequestQueue(context) :创建或得到请求队列并且是单例模式

3>add(Request):添加请求到队列中

2-Request

1>封装请求的基类

2>子类

1>-StringRequest:返回字符串的请求

构造方法:1-new StringRequest(get_path,正常响应监听,异常响应监听):实现GET方法

2-new StringRequest(Request.Method.Post,get_path,正常响应监听,异常响应监听){重写Map<String, String> getParams()}:实现POST方法

2>-JsonRequest:返回Json的请求

3>-ImageRequest:返回图片请求

3>Request.Method:GET和POST

二.加载方法

1.把jar包放到模块的libs目录下(切换到project视图模式)

2.在jar包上鼠标右键单击,选择“add as lib”,加入到开发环境

代码展示:

package com.hanqi.testapp3;

import android.app.ProgressDialog;
import android.net.Uri;
import android.support.annotation.RequiresPermission;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import com.android.volley.*;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

public class TestActivity3 extends AppCompatActivity {

EditText et_2;

//请求队列
RequestQueue requestQueue;

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

et_2 = (EditText) findViewById(R.id.et_2);

// 创建Volley的请求队列
// 在子线程
requestQueue= Volley.newRequestQueue(this);

}

//Volley的Get方式
public void bt5_OnClick(View v)
{

//1.启动进度对话框
final ProgressDialog pd = ProgressDialog.show(this, null, "请稍候...");

//构建StringRequest
StringRequest stringRequest=new StringRequest("Http://192.168.0.107:81/index.asp?name=volley&password=456",
new Response.Listener<String>() {
@Override
public void onResponse(String s) {

//处理正常响应
//在主线程运行
et_2.setText(s);

pd.dismiss();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {

//处理异常响应
volleyError.printStackTrace();

pd.dismiss();
Toast.makeText(TestActivity3.this, "响应异常 响应状态码="+volleyError.networkResponse.statusCode, Toast.LENGTH_SHORT).show();
}
});

//加入队列
requestQueue.add(stringRequest);
}

//Volley的Post方式
public void bt6_OnClick(View v)
{

//1.启动进度对话框
final ProgressDialog pd = ProgressDialog.show(this, null, "请稍候...");

//构建StringRequest
StringRequest stringRequest=new StringRequest(Request.Method.POST,"Http://192.168.0.107:81/index.asp",
new Response.Listener<String>() {
@Override
public void onResponse(String s) {

//处理正常响应
//在主线程运行
et_2.setText(s);

pd.dismiss();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {

//处理异常响应
volleyError.printStackTrace();

pd.dismiss();
Toast.makeText(TestActivity3.this, "响应异常 响应状态码="+volleyError.networkResponse.statusCode, Toast.LENGTH_SHORT).show();
}
}){

//重写  得到参数的方法
@Override
protected Map<String, String> getParams() throws AuthFailureError {

Map<String,String> rtn=new HashMap<>();

rtn.put("name","postVolley");
rtn.put("password","567");

return rtn;
}
};

//加入队列
requestQueue.add(stringRequest);
}

}


.java









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: