SSH伺服器與Android通訊(3)--Android用戶端發送資料

來源:互聯網
上載者:User

標籤:

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用戶端發送資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.