服务器 远程存储,数据储存——远程服务器存储——框架方式
一.Volley
1.特點
①輕量級的Android網(wǎng)絡(luò)通信庫
②適合數(shù)量不大但通信頻繁的場景
2.API
1.RequestQueue
①請求隊列
②Volley.newRequestQueue(context)?創(chuàng)建或得到請求隊列 ? ?單例模式
③add(Request)添加請求到隊列中
2.Request
①封裝請求的基類
②子類
1)StringRequest ?返回字符串的請求
構(gòu)造方法:
new ?StringRequest(get_path,正常響應(yīng)監(jiān)聽,異常響應(yīng)監(jiān)聽) ??實現(xiàn)get方式
new ?StringRequest(Request.Method.post,get_path,正常響應(yīng)監(jiān)聽,異常響應(yīng)監(jiān)聽){重寫 Map getParams()} ??實現(xiàn)post方式
2)JsonRequest ?返回Json的請求
3)ImageRequest ?返回圖片的請求
③Request.Method
1)GET ?2)POST
二.加載方法
1.把jar包放到模塊的libs目錄下(切換到project視圖模式)
2.在jar包上鼠標右鍵單機,選擇“add as lib”,加入到開發(fā)環(huán)境
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 //創(chuàng)建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 //構(gòu)建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 //處理正常響應(yīng)58 //在主線程響應(yīng)
59 et_2.setText(s);60
61 pd.dismiss();62 }63 },64 newResponse.ErrorListener() {65 @Override66 public voidonErrorResponse(VolleyError volleyError) {67
68 //處理異常響應(yīng)
69 volleyError.printStackTrace();70
71 pd.dismiss();72 Toast.makeText(TestActivity3.this, "響應(yīng)異常 響應(yīng)狀態(tài)碼" +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 //構(gòu)建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 //處理正常響應(yīng)95 //在主線程響應(yīng)
96 et_2.setText(s);97
98 pd.dismiss();99 }100 },101 newResponse.ErrorListener() {102 @Override103 public voidonErrorResponse(VolleyError volleyError) {104
105 //處理異常響應(yīng)
106 volleyError.printStackTrace();107
108 pd.dismiss();109 Toast.makeText(TestActivity3.this, "響應(yīng)異常 響應(yīng)狀態(tài)碼" +volleyError.networkResponse.statusCode, Toast.LENGTH_SHORT).show();110
111 }112 }){113
114 //重寫 得到參數(shù)的方法
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
總結(jié)
以上是生活随笔為你收集整理的服务器 远程存储,数据储存——远程服务器存储——框架方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王者荣耀在线服务器,王者荣耀实时对战服务
- 下一篇: win怎么打开微软更新服务器,怎样打开w