SSH服务器与Android通信(3)--Android客户端发送数据
Android客户端向SSH服务器发送数据主要有三种情况:通过客户端删除数据、添加数据和修改数据。
1.删除数据
先看看jsp文件里面是怎样删除数据的:
<td align="center"><a href="clasdelete.action?id=<s:property value='#st.id'/>" onclick="if(!window.confirm('是否删除'))return false;" >删除</a>
也就是说,只要向服务器发出一个HTTP请求,包含clasdelete.action?id=(要删除的记录id),就可以实现记录的删除。因此,首先通过点击按钮事件获得要删除的记录的ID,然后再启动一个线程向服务器发出HTTP请求即可。
// 点击删除按钮
my_item.btnDel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Var.id = my_item.txtNum.getText().toString();
Var.type = 2;
Var.delThread = new CommThread();
Var.delThread.start();
}
});
删除数据的功能和向服务器请求数据的功能可以在一个线程类里面实现,因为它们除了请求的URL不同,其他的操作基本上都是一样的。
// 删除数据
else if (Var.type == 2){
Var.strAct ="clasdelete.action?id=" + Var.id;
Var.strURL = Var.strHost + Var.strAct;
resIS = getIS(Var.strURL);
}
2.添加数据
先看看在jsp文件里面是如何实现添加数据的:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>添加课程</title>
</head>
<body>
<center>
<s:form action="clas" method="post" >
<tr>
<td colspan="2" align="center">
<h1><s:text name="欢迎添加课程"/></h1><br/>
<s:property value="exception.message"/>
</td>
</tr>
<s:textfield name="clas.name" key="课程名称"
tooltip="Enter class name!" required="true"></s:textfield>
<s:textfield name="clas.comment" key="课程介绍"
tooltip="Enter the comment!" required="true"></s:textfield>
<s:submit value="提交"/>
<s:set/>
</s:form>
</center>
</body>
</html>
也就是说,只要向服务器提交clas.name、clas.comment两个变量的值就可以了。在Android客户端,只能通过NameValuePair[]数组向服务器提交变量的值。新建一个线程类,把变量的名称和值放进NameValuePair[]数组,再向服务器提交就可以了。
public void add(){
Var.strAct = "clas";
Var.strURL = Var.strHost + Var.strAct;
Log.i("PostThread:", Var.strURL);
// 建立HTTPPost连接
HttpPost httpRequest = new HttpPost(Var.strURL);
// 变量用NameValuePair[]数组储存
List <NameValuePair> params = new ArrayList <NameValuePair>();
params.add(new BasicNameValuePair("clas.name", AddActivity.txtName));
params.add(new BasicNameValuePair("clas.comment", AddActivity.txtComm));
try{
// 发出HTTPRequest
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
// 取得HTTPResponse
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
// 状态码为200表明成功
if(httpResponse.getStatusLine().getStatusCode() == 200)
{
sendMessage(Var.msg_add, "");
}
else{
sendMessage(Var.msg_error,httpResponse.getStatusLine().toString());
}
}
// 出错处理
catch (ClientProtocolException e){
e.printStackTrace();
sendMessage(Var.msg_error, e.toString());
}
catch (IOException e){
e.printStackTrace();
sendMessage(Var.msg_error,e.toString());
}
catch (Exception e){
e.printStackTrace();
sendMessage(Var.msg_error,e.toString());
}
}
3.修改数据
修改数据和删除数据类似,也是把变量名称和值放进NameValuePair[]数组,再向服务器提交就可以了。
// 修改数据
public void update(){ Var.strAct = "clasupdate";
Var.strURL = Var.strHost + Var.strAct;
Log.i("PostThread:", Var.strURL);
// 建立HTTPPost连接
HttpPost httpRequest = new HttpPost(Var.strURL);
// Post变量用NameValuePair[]数组储存
List <NameValuePair> params = new ArrayList <NameValuePair>();
params.add(new BasicNameValuePair("clas.id", UpdateActivity.txtID));
params.add(new BasicNameValuePair("clas.name", UpdateActivity.txtName));
params.add(new BasicNameValuePair("clas.comment", UpdateActivity.txtComm));
try{
// 发出HTTPRequest
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
// 取得HTTPResponse
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
// 状态码为200表明成功
if(httpResponse.getStatusLine().getStatusCode() == 200)
{
sendMessage(Var.msg_update, "");
}
else{
sendMessage(Var.msg_error,httpResponse.getStatusLine().toString());
}
}
// 出错处理
catch (ClientProtocolException e){
e.printStackTrace();
sendMessage(Var.msg_error, e.toString());
}
catch (IOException e){
e.printStackTrace();
sendMessage(Var.msg_error,e.toString());
}
catch (Exception e){
e.printStackTrace();
sendMessage(Var.msg_error,e.toString());
} }
SSH服务器与Android通信(3)--Android客户端发送数据的更多相关文章
- android socket 通讯(客户端) 发送数据
/** ClientSocket通讯类 **/ public class ClientSocket { /**服务器地址*/ private String serverUrl=&q ...
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...
- Android笔记:Socket客户端收发数据
client.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and ...
- server-sent-event使用流信息向客户端发送数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C#模拟客户端发送数据示例
在给一些客户端做服务器端支持时,发现他们提交上来的数据大都不是http请求格式,因而使用Request.Form获取不到内容,今天用C#做下模拟,并演示下数据接收. 1.发送文本 1).客户端发送 ...
- SSH服务器与Android通信(2)--Android客户端接收数据
基本原理是Android客户端通过HttpClient向服务器发出请求,服务器向Android客户端返回JSON字符串,Android客户端解析JSON字符串获得数据. 1. 新建一个Android项 ...
- Android udp json+数组 --->bytes发送数据
Android json支持五种数据类型 String / int(float)/bool / null / object 今天说 object : json = new JSONObject( ...
- TCP实现多个客户端发送数据给服务器端
SocketThread给服务端用的线程类: public class SocketThread extends Thread{ private Socket socket; public Socke ...
- nodejs中http服务器,如何使用GET,POST请求发送数据、npm、以及一些插件的介绍
浏览器给服务器传递参数,最常用的是地址栏传参(get),以及表单提交(post) 先说get传参,就是在url后跟上?key=value&key2=value2...... 但是按照前几篇的h ...
随机推荐
- 正式开始jQuery源码的学习
查了一些资料,2.0.3版本的jq源码分析的资料比较多,就以这个版本研究学习了. 今天正式开始.
- js显示yyyy年mm日dd天 星期几 的格式日期
js代码: <script type="text/javascript"> var today = new Date(); var week; //存储星期几 var ...
- unity生成WP工程后ExtendedSplashImage显示不正确的问题
这个bug我已经彻底无语了,居然这么久都没有fix. 解决方法如下: <SwapChainPanel x:Name="DXSwapChainPanel"> <Gr ...
- AMD 和 CMD 的区别有哪些?
看到玉伯在介绍seajs和requirejs时,说“RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD (通用模块定义)规范”. 能否详细(举例)说明下这个2个规范 ...
- jQuery事件流的顺序
<div id="aaron"> <div id='test'> <ul> <p>点击p被委托,ul被阻止了,因为内部重写了事件对象 ...
- mysqldump导出不包含存储过程
mysqldump导出不包含存储过程 mysqldump -u 数据库用户名 -p -n -t -d -R --triggers=false 数据库名 > 文件名 这样单独把存储过程和函数导出 ...
- ES6入门系列四(测试题分析)
0.导言 ES6中新增了不少的新特性,来点测试题热热身.具体题目来源请看:http://perfectionkills.com/javascript-quiz-es6/. 以下将一题一题来解析what ...
- CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- ArcGIS Earth数据小析
ArcGIS Earth,一款轻量级的三维地球应用.因为工作关系下载试用了半天,正好借这个机会简单研究一下ArcGIS Earth的大概思路,特别是地形数据的组成和影像数据的加载,在这总结整理一下.下 ...
- java虚拟机启动参数分类详解
官方文档见: http://docs.sun.com/source/819-0084/pt_tuningjava.html java启动参数共分为三类:其一是标准参数(-),所有的JVM实现都必须实现 ...