Android学习笔记5:Android与ASP通过http协议交换数据

Android学习笔记5:Android与ASP通过http协议交换数据,第1张

概述做一个简易的远程数据监控时遇到的第一个问题是如何搞定固定IP,云主机当然是最理想的选择,但出于成本考虑今天研究了一下通过web网站获取或上传数据的方法。没太多可说的,直接晒代码publicstaticStringHttpPost(Stringurl,intid){Stringmsg;St

做一个简易的远程数据监控时遇到的第一个问题是如何搞定固定IP,云主机当然是最理想的选择,但出于成本考虑今天研究了一下通过web网站获取或上传数据的方法。

没太多可说的,直接晒代码

    public static String httpPost(String url,int ID)    {        String msg ;        String sval;        try{            httpURLConnection conn = (httpURLConnection) new URL(url).openConnection();            //设置请求方式,请求超时信息            conn.setRequestMethod("POST");            conn.setReadTimeout(5000);            conn.setConnectTimeout(5000);            //设置运行输入,输出:            conn.setDoOutput(true);            conn.setDoinput(true);            //Post方式不能缓存,需手动设置为false            conn.setUseCaches(false);            //数据:            sval=String.valueOf(ID);            String data = "ID="+ URLEncoder.encode(sval, "UTF-8")+"&name="+ URLEncoder.encode("chipart"+sval, "UTF-8");            //这个在asp里对应request("ID")和request("name")这两个值            //获取输出流            OutputStream out = conn.getoutputStream();            out.write(data.getBytes());            out.flush();            int rcode=conn.getResponseCode();//成功时返回200            if (rcode == 200) {                // 获取响应的输入流对象                inputStream is = conn.getinputStream();                // 创建字节输出流对象                ByteArrayOutputStream message = new ByteArrayOutputStream();                // 定义读取的长度                int len = 0;                // 定义缓冲区                byte buffer[] = new byte[1024];                // 按照缓冲区的大小,循环读取                while ((len = is.read(buffer)) != -1) {                    // 根据读取的长度写入到os对象中                    message.write(buffer, 0, len);                }                // 释放资源                is.close();                message.close();                // 返回字符串                msg = new String(message.toByteArray());                return msg;            }            else                msg="ERROR code:" + String.valueOf(rcode);        }catch(Exception e)        {            e.printstacktrace();            msg="ERR:" + e.getMessage();        }        return msg;    }

手机端用的是httpURLConnection这也是Google推荐 使用的类。网站是使用asp做的动态页面。

主要功能函数httpPost是使用http的post方法将数值传递给asp,然后读取asp页面返回的数据。asp页面读到数值后保存到数据库中,asp代码如下:

<%Dim tconnset tconn=server.CreateObject("ADODB.Connection")set rs=server.CreateObject("ADODB.Recordset")tconn.ConnectionString="ProvIDer=Microsoft.Jet.olEDB.4.0;Data Source=""" & server.Mappath("db\iot.mdb") & """"tconn.OpenDim irs.Open "SELECT * FROM tbl1 WHERE ID IS NulL",tconn,0,3,1rs.AddNewrs("pID")=request("ID")rs("name")=request("name")rs.Updaters.Closetconn.Closeset rs=nothingset tconn=nothing%><HTML>	<head>	</head>	<body>		数据上传成功!	</body></HTML>

 测试结果:

不太明白虚拟机显示中文字符为什么会出现乱码,不太关心的问题只能暂时忽略了。

下面是asp数据库查询页面显示图,就是为了看看数据库中插入数据有没有成功。

包括asp测试页面在内的项目代码下载请点击这里.

 

 

 

总结

以上是内存溢出为你收集整理的Android学习笔记5:Android与ASP通过http协议交换数据全部内容,希望文章能够帮你解决Android学习笔记5:Android与ASP通过http协议交换数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1057954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存