远程按钮单击(cgi脚本运行)

时间:2013-06-23 10:55:10

标签: android html web

我有一个具有切换功能的网络设备。当我点击设备自己的网页时,某个输出是更改状态。 我想创建一个可以在网络上管理此设备的Android应用程序。我会点击我的应用程序按钮,此事件在设备上运行,单击设备网页上的按钮。 这是设备网页上的代码:

<td width="130px"><input type="button"style="width:90px;"onclick="newAJAXCommand('leds.cgi?led=2');"value="Relé 1"/></td> 

我对Android应用有一个想法,但我不知道如何运行此查询(或创建点击事件)?

设备:http://91.137.148.13:8000/switch.htm

请帮助。

此致 久洛

1 个答案:

答案 0 :(得分:1)

当您点击网页上的按钮时,浏览器会向指定的网址(http://91.137.148.13:8000/leds.cgi?led=0)发送请求。因此,当用户点击Android应用中的按钮时,您可以向此网址发送请求。

private class exampleHttpTask extends AsyncTask<Integer, Integer, String> {
public String convertStreamToString(InputStream is, String charset) throws IOException {
    if (is != null) {
        Writer writer = new StringWriter();
        char[] buffer = new char[1024];
        try {
            Reader reader = new BufferedReader(new InputStreamReader(is, charset));
            int n;
            while ((n = reader.read(buffer)) != -1) {
                writer.write(buffer, 0, n);
            }
        } finally {
            is.close();
        }
        return writer.toString();
    } else {
        return "";
    }
}

protected String doInBackground(Integer... params) {
    String r = "";
    try {
        HttpClient hc = new DefaultHttpClient();
        HttpGet get = new HttpGet("http://91.137.148.13:8000/leds.cgi?led=0");
        HttpResponse hr = hc.execute(get);

        if(hr.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            InputStream is = hr.getEntity().getContent();
            r = convertStreamToString(is, "UTF-8");
        } else {
            r = "Error";
        }
    } catch(Exception e){
        e.printStackTrace();
    }
    return null;
}

protected void onPostExecute(String result) {
    Log.d("WEB", result);
}

protected void onPreExecute() {
}

}

(代码来自here) 当触发onClick事件时,运行

new exampleHttpTask().exec()