Storage--5大存儲一博打盡
來源:程序員人生 發布時間:2015-03-19 08:07:50 閱讀次數:3249次

activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="測試各種數據存儲方式"
android:textSize="20sp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickSP"
android:text="SharedPreference存儲" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickIF"
android:text="內部文件存儲" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickOF"
android:text="外部文件存儲" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickDB"
android:text="
數據庫存儲" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickNW"
android:text="網絡存儲" />
</LinearLayout>
MainActivity.java
package com.example.storage;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
/**
* 主界面
* @author xfzhang
*
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClickSP(View view) {
startActivity(new Intent(this, SPActivity.class));
}
public void onClickIF(View view) {
startActivity(new Intent(this, IFActivity.class));
}
public void onClickOF(View view) {
startActivity(new Intent(this, SDActivity.class));
}
public void onClickDB(View view) {
startActivity(new Intent(this, DBActivity.class));
}
//
public void onClickNW(View view) {
startActivity(new Intent(this, NetWorkActivity.class));
}
}
-----------------------------sp存儲------------------------------------------------

activity_sp.xml
<?xml version="1.0" encoding="utf⑻"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/et_sp_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="存儲的key" >
</EditText>
<EditText
android:id="@+id/et_sp_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="存儲的value" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_sp_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVE" />
<Button
android:id="@+id/btn_sp_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="READ" />
</LinearLayout>
</LinearLayout>
SPActivity.java
/**
* 保存路徑為--->/data/data/包名/shared_prefs/文件.xml
*/
package com.example.storage;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SPActivity extends Activity implements OnClickListener {
private EditText et_sp_name;
private EditText et_sp_value;
private Button btn_sp_save;
private Button btn_sp_read;
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sp);
et_sp_name = (EditText) findViewById(R.id.et_sp_name);
et_sp_value = (EditText) findViewById(R.id.et_sp_value);
btn_sp_save = (Button) findViewById(R.id.btn_sp_save);
btn_sp_read = (Button) findViewById(R.id.btn_sp_read);
btn_sp_read.setOnClickListener(this);
btn_sp_save.setOnClickListener(this);
//得到sp對象
sp = getSharedPreferences("sp", Context.MODE_PRIVATE);
}
@Override
public void onClick(View v) {
//讀寫
if (v==btn_sp_read) {
String name = et_sp_name.getText().toString();
//根據name值獲得value值
String value = sp.getString(name, null);
//或叫回顯
et_sp_value.setText(value);
}
//保存
if (v==btn_sp_save) {
String name = et_sp_name.getText().toString();
String value = et_sp_value.getText().toString();
//通過sp獲得edit編輯器,寄存數據,進行保存
sp.edit().putString(name, value).commit();
//給出提示
Toast.makeText(this, "保存成功", 0).show();
}
}
}
----------------------------下邊是手機內部存儲-------------------------------------------
activity_if.xml
<?xml version="1.0" encoding="utf⑻"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="將assets下的logo.png保存得手機內部" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btn_if_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVE"
android:onClick="testSaveInnerFile"/>
<Button
android:id="@+id/btn_if_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="READ"
android:onClick="testReadInnerFile"/>
</LinearLayout>
<ImageView
android:id="@+id/iv_if_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
IFActivity.java
<pre name="code" class="java">/**
* 向--->/data/data/包名/files/文件.xml
*/
package com.example.storage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast; public class IFActivity extends Activity {
private ImageView iv_if_icon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_if);
iv_if_icon = (ImageView) findViewById(R.id.iv_if_icon);
}
public void testSaveInnerFile(View view){
//獲得assetManager對象
AssetManager assetManager = getAssets();
//從assets中獲得資源
try {
InputStream is = assetManager.open("01.png");
//獲得輸出流
OutputStream os = this.openFileOutput("01.png", Context.MODE_PRIVATE);
byte[] buffer = new byte[1024];
int len = ⑴;
while((len=is.read(buffer))>0) {
os.write(buffer,0,len);
}
os.close();
is.close();
}catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(this, "保存成功", 0).show();
}
//讀取
public void testReadInnerFile(View view) {
//讀取手機內存文件
FileInputStream fis = null;
try {
fis = this.openFileInput("01.png");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//保裝為1個圖片對象
Bitmap bitmap = BitmapFactory.decodeStream(fis);
//顯示
iv_if_icon.setImageBitmap(bitmap);
}
}
------------------------------------------------------下邊是sd卡存儲-------------------------------------------------

activity_sd.xml
<?xml version="1.0" encoding="utf⑻"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/et_sd_filename"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="存儲的文件名">
</EditText>
<EditText
android:id="@+id/et_sd_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="存儲的文本內容"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVE"
android:onClick="save1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="READ"
android:onClick="read1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVE"
android:onClick="save2"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="READ"
android:onClick="read2"/>
</LinearLayout>
</LinearLayout>
SDActivity.java
/**
保存在--> /storage/sdcard/文件夾/xx.txt
*
*/
package com.example.storage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class SDActivity extends Activity {
private EditText et_sd_filename;
private EditText et_sd_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 記載視圖
setContentView(R.layout.activity_sd);
et_sd_filename = (EditText) findViewById(R.id.et_sd_filename);
et_sd_content = (EditText) findViewById(R.id.et_sd_content);
}
/**
* 保存數據得手機sd卡
保存在--> /storage/sdcard/文件夾/xx.tx
*/
public void save1(View view) {
String fileName = et_sd_filename.getText().toString();
String content = et_sd_content.getText().toString();
// sd卡掛載在手機上
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
// sd卡文件夾對應的file目錄對象
File sdfFile = Environment.getExternalStorageDirectory();
File dirFile = new File(sdfFile, "dataStorage");
if (!dirFile.exists()) {
dirFile.mkdirs();
}
//創建文件
File file = new File(dirFile, fileName);
try {
//創建包括輸出地址的文件輸出流
OutputStream os = new FileOutputStream(file);
os.write(content.getBytes("utf⑻"));
os.close();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(this, "保存成功", 0).show();
} else {
Toast.makeText(this, "sd卡沒有掛載", 0).show();
}
}
/**
* 讀取數據
*
* @param view
*/
public void read1(View view) {
String fileName = et_sd_filename.getText().toString();
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
// sd卡文件夾對應的file目錄對象
File sdfFile = Environment.getExternalStorageDirectory();
File dirFile = new File(sdfFile, "dataStorage");
if (!dirFile.exists()) {
dirFile.mkdirs();
}
//創建文件對象
File file = new File(dirFile, fileName);
ByteArrayOutputStream baos = null;
try {
//先將sd卡中的信息輸入到內存中,然后在輸出流輸出得手機文本框中
FileInputStream fis = new FileInputStream(file);
baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
baos.write(buffer, 0, len);
}
baos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
String content = baos.toString();
et_sd_content.setText(content);
} else {
Toast.makeText(this, "sd卡沒有掛載", 0).show();
}
}
/**
* 獲得的是--->/storage/sdcard/Android/data/app_package/files/
* 利用卸載后,sd卡中的也被清除
*/
public void save2(View view) {
String fileName = et_sd_filename.getText().toString();
String content = et_sd_content.getText().toString();
// sd卡掛載在手機上
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
File filesDir = this.getExternalFilesDir(null);
File file = new File(filesDir, fileName);
try {
OutputStream os = new FileOutputStream(file);
os.write(content.getBytes("utf⑻"));
os.close();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(this, "保存成功", 0).show();
} else {
Toast.makeText(this, "sd卡沒有掛載", 0).show();
}
}
/**
* 讀取方法2
*/
public void read2(View view) {
String fileName = et_sd_filename.getText().toString();
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {// sd卡掛載在手機上了
// 獲得 : /storage/sdcard/Android/data/app_package/files/
File filesDir = this.getExternalFilesDir(null);
File file = new File(filesDir, fileName);
ByteArrayOutputStream baos = null;
try {
FileInputStream fis = new FileInputStream(file);
baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = ⑴;
while ((len = fis.read(buffer)) > 0) {
baos.write(buffer, 0, len);
}
baos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
String content = baos.toString();
et_sd_content.setText(content);
} else {
Toast.makeText(this, "sd卡沒有正常掛載!", 0).show();
}
}
}
-----------------------------------以下是
數據庫存儲----------------------------

activity_db.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create DB"
android:onClick="create"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Insert"
android:onClick="insert"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update"
android:onClick="update"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Delete"
android:onClick="delete" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="query"
android:onClick="query" />
</LinearLayout>
DBHelper.java
package com.example.storage;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper{
private static final String DB_NAME = "atguigu.db";
public static final String TABLE_EMPLOYEE = "employee";
private static int version = 1;
//構造器
public DBHelper(Context context) {
super(context, DB_NAME, null, version);
}
//帶版本更新的構造器
public DBHelper(Context context,int version) {
super(context, DB_NAME, null, version);
DBHelper.version = version;
}
//創建
數據庫的時候調用(只調用1次)
@Override
public void onCreate(SQLiteDatabase db) {
//創建表
db.execSQL("create table employee(id integer primary key autoincrement,name,salary double,birthday date)");
//初始化數據
db.execSQL("insert into employee(name,salary,birthday)values('Tom1',8000,'1988-09⑴2')");
db.execSQL("insert into employee(name,salary,birthday)values('Tom2',9000,'1988-09⑴3')");
}
//版本更新時候調用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
DBActivity.java
package com.example.storage;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
public class DBActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_db);
}
public void create(View view) {
DBHelper dbHelper = new DBHelper(this);
// 是去獲得
數據庫連接, 如果
數據庫還沒有創建, 立即創建
數據庫, 并返回與
數據庫的連接對象
SQLiteDatabase database = dbHelper.getReadableDatabase();
}
public void insert(View view) {
DBHelper dbHelper = new DBHelper(this);
// 是去獲得
數據庫連接, 如果
數據庫還沒有創建, 立即創建
數據庫, 并返回與
數據庫的連接對象
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 準備數據
ContentValues values = new ContentValues();
values.put("name", "Tom3");
values.put("salary", "5000");
values.put("birthday", "1992-09⑴4");
// 插入操 database.insert(table, nullColumnHack, values)
long id = database.insert(DBHelper.TABLE_EMPLOYEE, null, values);
// toast提示
Toast.makeText(this, "插入成功" + id, 0).show();
// 關閉資源
database.close();
}
public void update(View view) {
DBHelper dbHelper = new DBHelper(this);
// 是去獲得
數據庫連接, 如果
數據庫還沒有創建, 立即創建
數據庫, 并返回與
數據庫的連接對象
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 準備數據
ContentValues values = new ContentValues();
values.put("name", "BOB3");
values.put("salary", 6200);
values.put("birthday", "1993⑴2⑴3");
// 更新資源database.update(table, values, whereClause, whereArgs)
int updateCount = database.update(DBHelper.TABLE_EMPLOYEE, values,
"id=?", new String[] { "3" });
// toast提示
Toast.makeText(this, "更新成功" + updateCount, 0).show();
// 關閉資源
database.close();
}
public void delete(View view) {
DBHelper dbHelper = new DBHelper(this);
// 是去獲得
數據庫連接, 如果
數據庫還沒有創建, 立即創建
數據庫, 并返回與
數據庫的連接對象
SQLiteDatabase database = dbHelper.getReadableDatabase();
int deleteCount = database.delete(DBHelper.TABLE_EMPLOYEE, "id=?",
new String[] { "2" });
// toast提示
Toast.makeText(this, "刪除成功" + deleteCount, 0).show();
// 關閉資源
database.close();
}
public void query(View view) {
DBHelper dbHelper = new DBHelper(this);
// 是去獲得
數據庫連接, 如果
數據庫還沒有創建, 立即創建
數據庫, 并返回與
數據庫的連接對象
SQLiteDatabase database = dbHelper.getReadableDatabase();
// 查詢全部返回結果集合
Cursor cursor = database.query(DBHelper.TABLE_EMPLOYEE, null, null,
null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String name = cursor.getString(1);
double salary = cursor.getDouble(2);
String brithday = cursor.getString(cursor.getColumnIndex("birthday"));
Log.e("Query", id + "_" + name + "_" + salary + "_" + brithday);
}
cursor.close();
database.close();
}
}
-------------------------------網絡存儲---------------------

activity_net.xml上面截圖布局文件省略
NetWorkActivity.java
package com.example.storage;
public class NetWorkActivity extends Activity {
private EditText et_main_content1;
private EditText et_main_content2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_net);
et_main_content1 = (EditText) findViewById(R.id.et_main_content1);
et_main_content2 = (EditText) findViewById(R.id.et_main_content2);
}
/*使用httpUrlConnection提交get要求*/
public void url_get(View view) {
final String path = et_main_content1.getText().toString()
+ "?name=Tom1&age=1";
//ProgressDialog是AlertDialog的自類,調用靜態方法show返回ProgressDialog
final ProgressDialog progressDialog = ProgressDialog.show(this, null,
"加載中...");
new Thread() {
public void run() {
try {
// 得到url對象
URL url = new URL(path);
// 得到連接
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
// 設置要求方式(只能大寫)
connection.setRequestMethod("GET");
// 設置可以讀取
服務器返回的數據
connection.setDoInput(true);
// 設置可以向服務端發送數據,如果為true就是post要求
// connection.setDoOutput(true);
// 設置連接超時時間
connection.setConnectTimeout(5000);
// 設置讀取
服務器返回數據的時間
connection.setReadTimeout(5000);
// 連接
服務器
connection.connect();
// 獲得要求碼
int responseCode = connection.getResponseCode();
// 判斷要求碼
if (responseCode == 200) {
// 得到從
服務器返回的數據輸入流
InputStream inputStream = connection.getInputStream();
// 獲得字節數組輸出流--將返回的結果寫到輸出流中
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 讀取輸入流中,講數據換為字符串
int len = 0;
byte[] buffer = new byte[1024];
while ((len = inputStream.read(buffer)) != ⑴) {
baos.write(buffer, 0, len);
}
baos.close();
inputStream.close();
//字節數組轉為字符串
final String result = baos.toString();
// 只有主線程可以更新界面
runOnUiThread(new Runnable() {
public void run() {
// 移除進度條
progressDialog.dismiss();
// 顯示結果
et_main_content2.setText(result);
}
});
}
} catch (Exception e) {
e.printStackTrace();
Log.e("TAG", "聯網要求失敗");
}
}
}.start();
}
/*
* 使用httpUrlConnection提交post要求
*/
public void url_post(View view) {
// ---http://192.168.30.41:8080/android/index.jsp
final String path = et_main_content1.getText().toString();
final ProgressDialog progressDialog = ProgressDialog.show(this, null,
"加載中...");
new Thread() {
public void run() {
try {
// 得到url對象
URL url = new URL(path);
// 得到連接
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
// 設置要求方式(只能大寫)
connection.setRequestMethod("POST");
// 設置可以讀取
服務器返回的數據
connection.setDoInput(true);
// 設置可以向服務端發送數據
connection.setDoOutput(true);
// 設置連接超時時間
connection.setConnectTimeout(5000);
// 設置讀取
服務器返回數據的時間
connection.setReadTimeout(5000);
// 連接
服務器
connection.connect();
// 通過流的方式向服務端提交要求參數
String data = "name=Tom2&age=2";
// 得到輸出流
OutputStream outputStream = connection.getOutputStream();
// 向
服務器寫數據
outputStream.write(data.getBytes("utf⑻"));
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
// 得到返回的輸入流
InputStream inputStream = connection.getInputStream();
// 準備輸出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while ((len = inputStream.read(buffer)) != ⑴) {
baos.write(buffer, 0, len);
}
baos.close();
inputStream.close();
//字節數組轉為字符串
final String result = baos.toString();
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
et_main_content2.setText(result);
}
});
}
} catch (Exception e) {
e.printStackTrace();
Log.e("TAG", "聯網要求失敗");
}
}
}.start();
}
/*
* 使用httpClient提交get要求
*/
public void client_get(View view) {
// ---http://192.168.30.41:8080/android/index.jsp
final String path = et_main_content1.getText().toString()
+ "?name=Tom3&age=3";
final ProgressDialog progressDialog = ProgressDialog.show(this, null,
"加載中...");
new Thread() {
public void run() {
try {
// 創建客戶端對象
HttpClient httpClient = new DefaultHttpClient();
// 設置超時時間
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);
// 創建get要求(包括路徑)
HttpGet request = new HttpGet(path);
// 獲得響應對象--客戶端對象履行要求獲得相應對象
HttpResponse httpResponse = httpClient.execute(request);
// 獲得要求碼
int statusCode = httpResponse.getStatusLine()
.getStatusCode();
// 進行判斷
if (statusCode == 200) {
// 獲得響應體數據
HttpEntity entity = httpResponse.getEntity();
// 利用工具類獲得響應數據
final String result = EntityUtils.toString(entity);
runOnUiThread(new Runnable() {
public void run() {
// 移除
progressDialog.dismiss();
et_main_content2.setText(result);
}
});
}
} catch (Exception e) {
e.printStackTrace();
Log.e("TAG", "聯網要求失敗");
}
}
}.start();
}
/*
* 使用httpClient提交post要求
*/
public void client_post(View view) {
// ---http://192.168.30.41:8080/android/index.jsp
final String path = et_main_content1.getText().toString();
final ProgressDialog progressDialog = ProgressDialog.show(this, null,
"加載中...");
new Thread() {
public void run() {
try {
// 創建客戶端對象
HttpClient httpClient = new DefaultHttpClient();
// 設置超時時間
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);
// 創建post要求對象
HttpPost request = new HttpPost(path);
// 設置要求體
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("name", "Tom4"));
parameters.add(new BasicNameValuePair("age", "4"));
HttpEntity entity = new UrlEncodedFormEntity(parameters,
"utf⑻");
request.setEntity(entity);
// 獲得響應對象
HttpResponse httpResponse = httpClient.execute(request);
// 獲得要求碼
int statusCode = httpResponse.getStatusLine()
.getStatusCode();
// 進行判斷
if (statusCode == 200) {
// 獲得響應體數據
HttpEntity entityRequest = httpResponse.getEntity();
// 利用工具類
final String result = EntityUtils
.toString(entityRequest);
runOnUiThread(new Runnable() {
public void run() {
// 移除
progressDialog.dismiss();
et_main_content2.setText(result);
}
});
}
} catch (Exception e) {
e.printStackTrace();
Log.e("TAG", "聯網要求失敗");
}
}
}.start();
}
/*
* 使用Volley提交get要求
*/
public void Volley_get(View view) {
//創建要求地址信息
final String path = et_main_content1.getText().toString()
+ "?name=Tom5&age=5";
//顯示進度條
final ProgressDialog progressDialog = ProgressDialog.show(this, null,
"加載中...");
StringRequest request = new StringRequest(Request.Method.GET, path,
new Response.Listener<String>() {
@Override
public void onResponse(String result) {
progressDialog.dismiss();
et_main_content2.setText(result);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
progressDialog.dismiss();
Toast.makeText(NetWorkActivity.this, "聯網失敗", 0).show();
}
});
//創建1個要求隊列
RequestQueue requestQueue = Volley.newRequestQueue(this);
//添加要求履行要求
requestQueue.add(request);
}
/*
* 使用Volley提交post要求
*/
public void Volley_post(View view) {
final String path = et_main_content1.getText().toString();
final ProgressDialog progressDialog = ProgressDialog.show(this, null,
"加載中...");
StringRequest request = new StringRequest(Request.Method.POST, path,
new Response.Listener<String>() {
@Override
public void onResponse(String result) {
progressDialog.dismiss();
et_main_content2.setText(result);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
progressDialog.dismiss();
Toast.makeText(NetWorkActivity.this, "聯網失敗", 0).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("name", "Tom6");
map.put("age", "6");
return map;
}
};
//創建要求隊列,處理要求
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(request);
}
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈