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客户端发送数据的更多相关文章

  1. android socket 通讯(客户端) 发送数据

    /** ClientSocket通讯类 **/  public class ClientSocket  {     /**服务器地址*/     private String serverUrl=&q ...

  2. 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)

    原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...

  3. Android笔记:Socket客户端收发数据

    client.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and ...

  4. server-sent-event使用流信息向客户端发送数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. C#模拟客户端发送数据示例

      在给一些客户端做服务器端支持时,发现他们提交上来的数据大都不是http请求格式,因而使用Request.Form获取不到内容,今天用C#做下模拟,并演示下数据接收. 1.发送文本 1).客户端发送 ...

  6. SSH服务器与Android通信(2)--Android客户端接收数据

    基本原理是Android客户端通过HttpClient向服务器发出请求,服务器向Android客户端返回JSON字符串,Android客户端解析JSON字符串获得数据. 1. 新建一个Android项 ...

  7. Android udp json+数组 --->bytes发送数据

    Android  json支持五种数据类型 String / int(float)/bool / null  / object 今天说 object  : json = new JSONObject( ...

  8. TCP实现多个客户端发送数据给服务器端

    SocketThread给服务端用的线程类: public class SocketThread extends Thread{ private Socket socket; public Socke ...

  9. nodejs中http服务器,如何使用GET,POST请求发送数据、npm、以及一些插件的介绍

    浏览器给服务器传递参数,最常用的是地址栏传参(get),以及表单提交(post) 先说get传参,就是在url后跟上?key=value&key2=value2...... 但是按照前几篇的h ...

随机推荐

  1. Git bash 配置ssh key

    问题描述 昨天为了配置Qt create中的Git,把我一直在使用的Github删除了,今本以为,这样git的一些配置还在,可是,今天上传一些提交的时候,提示我,git没有密钥.梳理一下,这个简单的配 ...

  2. MVVM架构~Knockoutjs系列之对象与对象组合

    返回目录 在面向对象的程序设计里,对象是核心,一切皆为对象,对象与对象之间的关系可以表现为继承和组合,而在Knockoutjs或者JS里,也存在着对象的概念,今天主要说一下JS里的对象及对象的组合. ...

  3. 题目一:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

  4. Atitit   图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)

    Atitit   图像处理 平滑 也称 模糊, 归一化块滤波.高斯滤波.中值滤波.双边滤波) 是一项简单且使用频率很高的图像处理方法 用途 去噪 去雾 各种线性滤波器对图像进行平滑处理,相关OpenC ...

  5. Enterprise Solution 2.3

    1. 登陆窗体和主界面增加语言选项,同时可记住用户登陆的语言和数据库. 2. 主界面的树功能可记住上次打开的模块菜单. 3. 修复主界面菜单生成问题和导航图区上下文菜单生成问题. 4. 增加自动更新功 ...

  6. KendoUI系列:AutoComplete

    1.基本使用 <link href="@Url.Content("~/C ontent/kendo/2014.1.318/kendo.common.min.css" ...

  7. SQL Pass北京举办1周年活动(本次活动特别邀请到了来自微软的SQL Server大师何雷谈数据库职业规划)

    地点:北京微软(中国)有限公司[望京利星行],三层308室 时间:2013年 12 月28日 13:30-16:30 SQL PASS 北京QQ群号:2435349 新浪微群地址:http://q.w ...

  8. javase基础复习攻略《九》

    本篇将为大家总结JAVA中的线程机制,谈到线程,大家一定会问线程和进程有什么区别?刚接触进程时我也有这样的疑问,今天就为大家简单介绍一下进程和线程.进程(Process)是计算机中的程序关于某数据集合 ...

  9. 转载----How fast is Redis?

    How fast is Redis? Redis includes the redis-benchmark utility that simulates running commands done b ...

  10. RPC原理详解

    RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性. 为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分 ...