将服务器端字符读取至android的文本控件,换行符成为了黑方块的原因
将服务器端字符读取至android的文本控件,换行符变成了黑方块的原因
今天试验android通过http协议发送请求,然后将服务器响应显示在EditText上的时候,发现后面总是多了个黑方块。(服务器端是tomcat+servlet,部署在windows机上).
刚开始一直没想明白,后来意识到android是linux的分支,那它的换行符是"\n",而服务器端是部署在win上的,换行符是“\r\n”,这就找到了问题的原因:android只读取一个“\n”做为它的换行符,剩下多余的“\r”就成了多余的字符了。
所以在win下做主机的话,要么换行符不要在响应中添加,否则就做如下简单替换:
String response = .........(假设已经将响应转换为字符串赋值给变量response)
response = response.replace("\r\n","\n");
这样,response字符串就正常的显示在android的文本控件上了。
就是很简单的一个demo,服务器端和普通java web程序一样的架构,只相当于UI换了:
比如服务器端我配置了如下的servlet:
<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>cn.edu.hrbeu.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
那在客户端只要如下发出请求就可以了:
String str = 请求路径,以上面的servlet为例http://hostname/testServlet
URL url = new URL(str)
补一句,对服务器的访问用java.net包下的方法或者用apache httpclient的包都可以
是毕设,用于个人藏书交换的~
普通学校啦,是我自己改的题哈~
今天试验android通过http协议发送请求,然后将服务器响应显示在EditText上的时候,发现后面总是多了个黑方块。(服务器端是tomcat+servlet,部署在windows机上).
刚开始一直没想明白,后来意识到android是linux的分支,那它的换行符是"\n",而服务器端是部署在win上的,换行符是“\r\n”,这就找到了问题的原因:android只读取一个“\n”做为它的换行符,剩下多余的“\r”就成了多余的字符了。
所以在win下做主机的话,要么换行符不要在响应中添加,否则就做如下简单替换:
String response = .........(假设已经将响应转换为字符串赋值给变量response)
response = response.replace("\r\n","\n");
这样,response字符串就正常的显示在android的文本控件上了。
1 楼
dust_bug
2010-04-17
在服务器上是用servelet来处理吗?
在手机上呢,讲讲架构了
在手机上呢,讲讲架构了
2 楼
爱琴海的水手
2010-04-17
dust_bug 写道
在服务器上是用servelet来处理吗?
在手机上呢,讲讲架构了
在手机上呢,讲讲架构了
就是很简单的一个demo,服务器端和普通java web程序一样的架构,只相当于UI换了:
比如服务器端我配置了如下的servlet:
<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>cn.edu.hrbeu.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
那在客户端只要如下发出请求就可以了:
String str = 请求路径,以上面的servlet为例http://hostname/testServlet
URL url = new URL(str)
3 楼
爱琴海的水手
2010-04-17
dust_bug 写道
在服务器上是用servelet来处理吗?
在手机上呢,讲讲架构了
在手机上呢,讲讲架构了
补一句,对服务器的访问用java.net包下的方法或者用apache httpclient的包都可以
4 楼
dust_bug
2010-04-17
就是做成一个C/S的程序,在手机上就是client端
你打算做个什么样子的应用呢
你打算做个什么样子的应用呢
5 楼
爱琴海的水手
2010-04-18
dust_bug 写道
就是做成一个C/S的程序,在手机上就是client端
你打算做个什么样子的应用呢
你打算做个什么样子的应用呢
是毕设,用于个人藏书交换的~
6 楼
dust_bug
2010-04-18
毕业设计都开始做android程序了,那个学校啊
7 楼
爱琴海的水手
2010-04-18
dust_bug 写道
毕业设计都开始做android程序了,那个学校啊
普通学校啦,是我自己改的题哈~