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

一.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”,加入到开发环境

代码展示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.testapp3.TestActivity3"
11     android:orientation="vertical">
12
13     <LinearLayout
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content">
16
17         <Button
18             android:layout_width="0dp"
19             android:layout_height="wrap_content"
20             android:layout_weight="1"
21             android:text="JDK-Get方式"
22             android:onClick="bt1_OnClick"/>
23         <Button
24             android:layout_width="0dp"
25             android:layout_height="wrap_content"
26             android:layout_weight="1"
27             android:text="JDK-Post方式"
28             android:onClick="bt2_OnClick"/>
29     </LinearLayout>
30
31     <!--<LinearLayout-->
32         <!--android:layout_width="match_parent"-->
33         <!--android:layout_height="wrap_content">-->
34
35         <!--<Button-->
36             <!--android:layout_width="0dp"-->
37             <!--android:layout_height="wrap_content"-->
38             <!--android:layout_weight="1"-->
39             <!--android:text="Android-Get方式"-->
40             <!--android:onClick="bt3_OnClick"/>-->
41         <!--<Button-->
42             <!--android:layout_width="0dp"-->
43             <!--android:layout_height="wrap_content"-->
44             <!--android:layout_weight="1"-->
45             <!--android:text="Android-Post方式"-->
46             <!--android:onClick="bt4_OnClick"/>-->
47     <!--</LinearLayout>-->
48
49     <LinearLayout
50         android:layout_width="match_parent"
51         android:layout_height="wrap_content">
52
53         <Button
54             android:layout_width="0dp"
55             android:layout_height="wrap_content"
56             android:layout_weight="1"
57             android:text="Volley-Get方式"
58             android:onClick="bt5_OnClick"/>
59         <Button
60             android:layout_width="0dp"
61             android:layout_height="wrap_content"
62             android:layout_weight="1"
63             android:text="Volley-Post方式"
64             android:onClick="bt6_OnClick"/>
65     </LinearLayout>
66     <EditText
67         android:layout_width="match_parent"
68         android:layout_height="200dp"
69         android:id="@+id/et_2"/>
70
71 </LinearLayout>

.xml

  1 package com.hanqi.testapp3;
  2
  3 import android.app.ProgressDialog;
  4 import android.net.Uri;
  5 import android.support.annotation.RequiresPermission;
  6 import android.support.v7.app.AppCompatActivity;
  7 import android.os.Bundle;
  8 import android.util.Log;
  9 import android.view.View;
 10 import android.widget.EditText;
 11 import android.widget.Toast;
 12
 13
 14 import java.io.InputStream;
 15 import java.io.OutputStream;
 16 import java.net.HttpURLConnection;
 17 import java.net.URL;
 18 import java.util.HashMap;
 19 import java.util.Map;
 20
 21 import com.android.volley.*;
 22 import com.android.volley.toolbox.StringRequest;
 23 import com.android.volley.toolbox.Volley;
 24
 25 public class TestActivity3 extends AppCompatActivity {
 26
 27     EditText et_2;
 28
 29     //请求队列
 30     RequestQueue requestQueue;
 31
 32
 33     @Override
 34     protected void onCreate(Bundle savedInstanceState) {
 35         super.onCreate(savedInstanceState);
 36         setContentView(R.layout.activity_test3);
 37
 38         et_2 = (EditText) findViewById(R.id.et_2);
 39
 40         // 创建Volley的请求队列
 41         // 在子线程
 42         requestQueue= Volley.newRequestQueue(this);
 43
 44     }
 45
 46     //Volley的Get方式
 47     public void bt5_OnClick(View v)
 48     {
 49
 50         //1.启动进度对话框
 51         final ProgressDialog pd = ProgressDialog.show(this, null, "请稍候...");
 52
 53         //构建StringRequest
 54         StringRequest stringRequest=new StringRequest("Http://192.168.0.107:81/index.asp?name=volley&password=456",
 55                 new Response.Listener<String>() {
 56                     @Override
 57                     public void onResponse(String s) {
 58
 59                         //处理正常响应
 60                         //在主线程运行
 61                         et_2.setText(s);
 62
 63                         pd.dismiss();
 64                     }
 65                 },
 66                 new Response.ErrorListener() {
 67             @Override
 68             public void onErrorResponse(VolleyError volleyError) {
 69
 70                 //处理异常响应
 71                 volleyError.printStackTrace();
 72
 73                 pd.dismiss();
 74                 Toast.makeText(TestActivity3.this, "响应异常 响应状态码="+volleyError.networkResponse.statusCode, Toast.LENGTH_SHORT).show();
 75             }
 76         });
 77
 78         //加入队列
 79         requestQueue.add(stringRequest);
 80     }
 81
 82
 83     //Volley的Post方式
 84     public void bt6_OnClick(View v)
 85     {
 86
 87         //1.启动进度对话框
 88         final ProgressDialog pd = ProgressDialog.show(this, null, "请稍候...");
 89
 90         //构建StringRequest
 91         StringRequest stringRequest=new StringRequest(Request.Method.POST,"Http://192.168.0.107:81/index.asp",
 92                 new Response.Listener<String>() {
 93                     @Override
 94                     public void onResponse(String s) {
 95
 96                         //处理正常响应
 97                         //在主线程运行
 98                         et_2.setText(s);
 99
100                         pd.dismiss();
101                     }
102                 },
103                 new Response.ErrorListener() {
104                     @Override
105                     public void onErrorResponse(VolleyError volleyError) {
106
107                         //处理异常响应
108                         volleyError.printStackTrace();
109
110                         pd.dismiss();
111                         Toast.makeText(TestActivity3.this, "响应异常 响应状态码="+volleyError.networkResponse.statusCode, Toast.LENGTH_SHORT).show();
112                     }
113                 }){
114
115             //重写  得到参数的方法
116             @Override
117             protected Map<String, String> getParams() throws AuthFailureError {
118
119                 Map<String,String> rtn=new HashMap<>();
120
121                 rtn.put("name","postVolley");
122                 rtn.put("password","567");
123
124                 return rtn;
125             }
126         };
127
128         //加入队列
129         requestQueue.add(stringRequest);
130     }
131
132 }

.java

时间: 2024-10-07 05:06:28

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

数据储存——远程服务器存储——JDK方式

JDK方式 API 一.URL 1.new  URL("http://网络资源路径") 2.openConnection(),返回URLConnection对象 二.HttpURLConnection 1.setRequestMethod(“GET”/“POST”):设置请求方式 2.setConnectTimeout(毫秒数):设置连接超时时间 3.setReadTimeout(毫秒数):设置读超时时间 4.connect( ):连接服务器,发送请求 5.getOutputStrea

远程服务器存储之JDK方式

一.API 1.new  URL("http://网络资源路径") 2.openConnection(),返回URLConnection对象 二.HttpURLConnection 1.setRequestMethod(“GET”/“POST”):设置请求方式 2.setConnectTimeout(毫秒数):设置连接超时时间 3.setReadTimeout(毫秒数):设置读超时时间 4.connect( ):连接服务器,发送请求 5.getOutputStream( ):得到连接输

远程服务器存储之JDK的get请求方式

一.HTTP协议 1.超文本传输协议 2.支持客户端/服务器端模式 3.内容 1-请求协议 1>请求报文格式 1>-请求行:请求方式  请求资源名  协议版本号; 2>-请求消息头 3>-请求体 2>请求方式 1>-POST:请求内容在请求体里,以键=值的形式,键值对之间用&间隔;长度不受限制,保密性高. 2>-GET:请求内容在URL后面用?开始,以键=值的形式,键值对之间用&间隔:请求报文没有请求体:请求数据的长度受到浏览器的限制:请求数据保密

数据存储——远程服务器存储——JDK的get请求方式

一.HTTP协议 1.超文本传输协议 2.支持客户端/服务器端模式 3.内容 1-请求协议 1>请求报文格式 1>-请求行:请求方式  请求资源名  协议版本号; 2>-请求消息头 3>-请求体 2>请求方式 1>-POST:请求内容在请求体里,以键=值的形式,键值对之间用&间隔;长度不受限制,保密性高. 2>-GET:请求内容在URL后面用?开始,以键=值的形式,键值对之间用&间隔:请求报文没有请求体:请求数据的长度受到浏览器的限制:请求数据保密

Android Volley框架的几种post提交请求方式

首先简单描述一下Google的Android开发团队在2013年推出的一个网络通信框架Volley.它的设计目标是进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如下载文件等,Volley的表现就不尽如人意. 在app开发中,我们最常见的就是从app客户端向服务端发一个http请求.对于两种基本的web请求方式get和post来说,get请求方式相对比较简单,在此略过不表.本文重点描述一下通过volley进行几种post提交的方式. 1.客户端以普通的post方式进行提交,服务

数据储存——远程服务器存储——框架方式

一.Volley 1.特点 ①轻量级的Android网络通信库 ②适合数量不大但通信频繁的场景 2.API 1.RequestQueue ①请求队列 ②Volley.newRequestQueue(context) 创建或得到请求队列    单例模式 ③add(Request)添加请求到队列中 2.Request ①封装请求的基类 ②子类 1)StringRequest  返回字符串的请求 构造方法: new  StringRequest(get_path,正常响应监听,异常响应监听)   实现

远程服务器存储之JSON

一.特点 1.JavaScript Object Notation 2.一种轻量级的数据交互格式 二.格式 1.[ ] 数组:[value1, value2, value3...] 2.{ } 对象:{key1:value1, key2:value2, key3:value3,...} 1-key:字符串,表示对象的属性 2-value:表示属性的值 数据类型:数值,字符串,null,json数组,json对象. 三.API 1.Android原生 2.第三方框架 JSON代码展示: 1 <?x

数据储存——远程服务器存储——JSON

JSON 一.特点 1.JavaScript Object Notation 2.一种轻量级的数据交互格式 二.格式 1.[ ] 数组:[value1, value2, value3...] 2.{ } 对象:{key1:value1, key2:value2, key3:value3,...} 1-key:字符串,表示对象的属性 2-value:表示属性的值 数据类型:数值,字符串,null,json数组,json对象. 三.API 1.Android原生 2.第三方框架 1 <?xml ve

android-数据存储之远程服务器存储

待续.... public class MainActivity extends Activity { private TextView tv;     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv=(TextVi