一.Volley

1.特点

①轻量级的Android网络通信库

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

2.API

1.RequestQueue

①请求队列

②Volley.newRequestQueue(context) 创建或得到请求队列    单例模式

③add(Request)添加请求到队列中

2.Request

①封装请求的基类

②子类

1)StringRequest  返回字符串的请求

构造方法:

new  StringRequest(get_path,正常响应监听,异常响应监听)   实现get方式

new  StringRequest(Request.Method.post,get_path,正常响应监听,异常响应监听){重写 Map getParams()}   实现post方式

2)JsonRequest  返回Json的请求

3)ImageRequest  返回图片的请求

③Request.Method

1)GET  2)POST

二.加载方法

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

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

Volley-Get方式

Volley-Post方式

1 <?xml version="1.0" encoding="utf-8"?>

2

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

15 android:layout_height="wrap_content">

16

18 android:layout_height="wrap_content"

19 android:layout_weight="1"

20 android:text="JDK-Post方式"

21 android:onClick="bt2_OnClick"/>

22

24 android:layout_height="wrap_content"

25 android:layout_weight="1"

26 android:text="JDK-Get方式"

27 android:onClick="bt1_OnClick"/>

28

29

30

32 android:layout_height="wrap_content">

33

35 android:layout_height="wrap_content"

36 android:layout_weight="1"

37 android:text="Volley-Get方式"

38 android:onClick="bt3_OnClick"/>

39

41 android:layout_height="wrap_content"

42 android:layout_weight="1"

43 android:text="Volley-Post方式"

44 android:onClick="bt4_OnClick"/>

45

46

48 android:layout_height="200dp"

49 android:id="@+id/et_2"/>

50

51

.xml

1 packagecom.hanqi.testapp3;2

3 importandroid.app.ProgressDialog;4 importandroid.os.Bundle;5 importandroid.support.v7.app.AppCompatActivity;6 importandroid.util.Log;7 importandroid.view.View;8 importandroid.widget.EditText;9 importandroid.widget.Toast;10

11 importcom.android.volley.AuthFailureError;12 importcom.android.volley.Request;13 importcom.android.volley.RequestQueue;14 importcom.android.volley.Response;15 importcom.android.volley.VolleyError;16 importcom.android.volley.toolbox.StringRequest;17 importcom.android.volley.toolbox.Volley;18

19 importjava.io.InputStream;20 importjava.io.OutputStream;21 importjava.net.HttpURLConnection;22 importjava.net.URL;23 importjava.util.HashMap;24 importjava.util.Map;25

26 public class TestActivity3 extendsAppCompatActivity {27

28

29 EditText et_2;30

31 //请求队列

32 RequestQueue requestQueue;33

34 @Override35 protected voidonCreate(Bundle savedInstanceState) {36 super.onCreate(savedInstanceState);37 setContentView(R.layout.activity_test3);38

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

41 //创建Volley的请求队列42 //在子线程

43 requestQueue= Volley.newRequestQueue(this);44

45 }46 //Volley的Get

47 public voidbt3_OnClick(View v)48 {49 //1.启动进度对话框

50 final ProgressDialog pd = ProgressDialog.show(this, null, "正在加载,请稍后...");51

52 //构建StringRequest

53 StringRequest stringRequest = new StringRequest("http://192.168.0.128:81/index.asp?name=volley&password=456",54 new Response.Listener() {55 @Override56 public voidonResponse(String s) {57 //处理正常响应58 //在主线程响应

59 et_2.setText(s);60

61 pd.dismiss();62 }63 },64 newResponse.ErrorListener() {65 @Override66 public voidonErrorResponse(VolleyError volleyError) {67

68 //处理异常响应

69 volleyError.printStackTrace();70

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

74 }75 });76 //加入队列

77 requestQueue.add(stringRequest);78

79 }80

81

82

83 //Volley的Post

84 public voidbt4_OnClick(View v)85 {86 //1.启动进度对话框

87 final ProgressDialog pd = ProgressDialog.show(this, null, "正在加载,请稍后...");88

89 //构建StringRequest

90 StringRequest stringRequest = new StringRequest(Request.Method.POST,"http://192.168.0.128:81/index.asp",91 new Response.Listener() {92 @Override93 public voidonResponse(String s) {94 //处理正常响应95 //在主线程响应

96 et_2.setText(s);97

98 pd.dismiss();99 }100 },101 newResponse.ErrorListener() {102 @Override103 public voidonErrorResponse(VolleyError volleyError) {104

105 //处理异常响应

106 volleyError.printStackTrace();107

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

111 }112 }){113

114 //重写 得到参数的方法

115 @Override116 protected Map getParams() throwsAuthFailureError {117

118 Map rtn =new HashMap<>();119

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

123 returnrtn;124 }125 };126 //加入队列

127 requestQueue.add(stringRequest);128

129 }130 }

.java

服务器 远程存储,数据储存——远程服务器存储——框架方式相关推荐

  1. android 读取内部存储文件格式,Android中的数据储存之文件存储

    当我们在使用各种程序时,其实际上是在和各种数据打交道,当我们聊QQ,刷微博,看新闻,其实都是在和里面的数据交互 例如在聊天时发出的消息,以及在登录时输入的账号密码,其实都是瞬时数据,那什么是瞬时数据呢 ...

  2. 单片机传输信息到服务器,单片机传数据到云服务器

    单片机传数据到云服务器 内容精选 换一换 假设您的云服务器已经部署好应用,您可以将这台云服务器创建为私有镜像,然后通过私有镜像创建相同配置的云服务器,省去重复部署应用的时间.参考如下指导:通过云服务器 ...

  3. 【Revit二次开发】模型中存储数据——参数和外部存储(Parameter, Schema and Entity)

    模型中存储数据 参数 读取 写入 外部存储 Schema Entity 快速获取外部存储参数 参数 在Revit平台API中,每个图元对象都有参数属性,它是隶属于图元所有属性的集合,在此集合中更改属性 ...

  4. 修改游戏服务器中的数据,修改游戏服务器中的数据库

    修改游戏服务器中的数据库 内容精选 换一换 业界对备份一致性的定义包括如下三类:不一致备份:备份的文件.磁盘不在同一个时间点.云备份中的云服务器备份提供对弹性云服务器和裸金属服务器的基于多云硬盘一致性 ...

  5. python 大量使用json 存储数据时,格式化输出的方式

    import json, pprint dic = {'name': 234, 'user_name': 'yan xia ting yu ', 'list': ['ds', 'a', 2], '你好 ...

  6. 关于计算机硬盘的详细分类及不同硬盘存储数据的方式

    文章目录 计算机硬盘的发展历史 标志性历史事件 后续发展 现存主要硬盘制造商 计算机硬盘分类 按照运行模式,存储介质和结构分类 按照硬盘接口类型分类 计算机硬盘储存数据的基础知识和原理 机械硬盘 机械 ...

  7. 块储存、对象存储、文件存储的区别和联系

    块储存.对象存储.文件存储的区别和联系 通常来讲,磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储. 1. 块存储:DAS   SAN a) DAS(Direct Attach S ...

  8. powerha_在IBM PowerHA集群环境中实现存储数据的服务器端缓存

    本文介绍了如何将IBMPowerHA®集群配置为使用定制的应用程序脚本为应用程序提供高可用性(HA)时,如何在IBM®AIX®操作系统上启用服务器端存储数据缓存 . AIX提供AIX 7.1 TL4 ...

  9. 服务器数据盘不显示,云服务器不显示数据盘

    云服务器不显示数据盘 内容精选 换一换 云硬盘挂载至云服务器后,需要登录云服务器初始化云硬盘,即格式化云硬盘,之后云硬盘才可以正常使用.云耀云服务器磁盘初始化的操作方法与ECS相同,本节操作介绍使用脚 ...

最新文章

  1. 三月苏州健康小贴士!!!健康生活从我做起
  2. 共享文件夹Access-Based Enumeration特性一览
  3. Asp.net如何生成html静态页面
  4. 【poj3375】 Network Connection
  5. htaccess有什么用
  6. 论文笔记--跨模态间的人脸与人名对齐方法研究-2012
  7. CentOS下NTP安装配置
  8. 如何使用Spring Bean Configuration File调用构造方法并给参数赋值
  9. mongodb执行sql脚本文件
  10. 使用SurfaceView完成地图无缝拼接
  11. 【完美解决方案】Error during artifact deployment. See server log for details.
  12. 18. Redis 管理命令-查看服务器状态
  13. python魔术方法(一)
  14. 一些模拟器在配置文件内查找端口号的方式
  15. git提交代码到github gitbash
  16. ZZULIOJ-2910
  17. 激光粒度仪应用与发展(二)
  18. Ansible篇-CentOS7安装AWX详解
  19. redhat linux 6.4,redhat linux 6.4 运行 runcluvfy 错误一例
  20. 微信小程序的网上订餐点餐系统vue_uniapp

热门文章

  1. Amazon Aurora 深度探索
  2. FLV文件中VideoPacket的详解
  3. http 长连接 短连接
  4. k8s部署nginx集群
  5. 俞敏洪:如果创业者缺乏这8种能力,失败可能性很大
  6. npm 安装报错 rollbackFailedOptional verb npm-session无法解决?
  7. 【Java入门】package包
  8. PAT1052 卖个萌 (20 分)【别人的代码 借鉴从字符串中截取特定部分的思路】
  9. python做一个考试系统_1218Python基于Django在线考试系统设计
  10. 12.term_vectors查看