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. ubuntu:solve the problem of 'E:Problem with MergeList /var/lib/apt/lists/'

    just run this command: sudo rm /var/lib/apt/lists/* -vfR it will remove all the software package wit ...

  2. ehcache2拾遗之cache持久化

    问题描述 应用在使用过程中会需要重启等,但是如果ehcache随着应用一起重启,那么刚重启的时候就会出现大量的miss,需要一定的访问量来重建缓存,如果缓存能够持久化,重启之后可以复用将会有助于缓解重 ...

  3. 解决方法of未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    在开发的一个报表转换功能涉及到Excel97-2003(.xls)文件的导入.使用oledb来读取excel数据.代码为: public static DataSet LoadDataFromExce ...

  4. 合法提交Html标签 Page指令

    3.2.1 提交合法的HTML标签(1) 有时候我们需要让我们提交的文本展示出来的效果非常美观,通常会对服务器提交一些HTML标签来控制文本或内容的样式. HTML标签可能包含了很多不安全的因素,所以 ...

  5. Atiit 如何手写词法解析器

    Atiit 如何手写词法解析器 1.1. 通过编程直接从正则->nfa->dfa->表驱动词法解析一条龙自动生成.那是用程序自动生成是需要这样的,自己手写完全不必要这么复杂1 1.2 ...

  6. Atitit图片复制父目录给你设计的实现 基于win 图片浏览器

    Atitit图片复制父目录给你设计的实现 基于win 图片浏览器 打开属性,获取其路径...1 Ahk参数传递,使用环境变量即可1 如何ahk异常转换为java异常1 如何获取ahk的输出.1 C:\ ...

  7. Atitit 图像处理—图像形态学(膨胀与腐蚀)

    Atitit 图像处理-图像形态学(膨胀与腐蚀) 1.1. 膨胀与腐蚀1 1.2. 图像处理之二值膨胀及应用2 1.3. 测试原理,可以给一个5*5pic,测试膨胀算法5 1.4. Photoshop ...

  8. paip.mysql 性能测试by mysqlslap

    paip.mysql 性能测试by mysqlslap   作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog. ...

  9. sql分组(orderBy、GroupBy)获取每组前一(几)条数据

    sql数据库实现分组并取每组的前1(几)条数据 测试数据准备工作: 根据某一个字段分组取最大(小)值所在行的数据: 创建表并且插入数据 ),Val )) , 'a1--a的第一个值') , 'b2b2 ...

  10. SlickUpload Quick Start Guide

    Quick Start Guide The SlickUpload quick start demonstrates how to install SlickUpload in a new or ex ...