这是一个android前台向服务端网站请求少量数据的小例子。

首先设计好服务端,再来写安卓前端。

一:服务端

新建动态网站,在java包下新建一个类继承HttpServlet父类,重写doGet()方法,向客户端输出文字。

部署这个类,把这个类的包和class文件复制到WEB-INF的classes目录下,在web.xml文件配置这个文件的网络路径。

Internet文件的代码:

package android;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class Internet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// TODO 自动生成的方法存根

//super.doGet(req, resp);

resp.setContentType("text/html;charset=utf-8");

PrintWriter print=resp.getWriter();

print.println("你好!");//客户端可以接收得到,本网页显示

print.println("上海!");

print.flush();//flush()不可以少

System.out.println("瓜瓜!");//客户端接收不到,本网页不显示,输出在控制台

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// TODO 自动生成的方法存根

super.doPost(req, resp);

}

@Override

protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {

// TODO 自动生成的方法存根

super.service(arg0, arg1);

}

@Override

public void init() throws ServletException {

// TODO 自动生成的方法存根

super.init();

}

}

配置的web.xml

a

android.Internet

a

/b

访问路径:

至此服务端的书写已经成功,接下来开始安卓端的书写。

二:安卓手机端

编写主线程,处理子线程拿到数据后对数据的展示。

编写子线程,用于连接服务器端拿到数据,并发送给主线程。

附上代码:

activity_main.xml只有一个控件

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=" "

android:textAppearance="?android:attr/textAppearanceLarge" />

主线程MainActivity.java

import android.annotation.SuppressLint;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.support.v7.app.ActionBarActivity;

import android.widget.TextView;

import com.internethttp.R;

public class MainActivity extends ActionBarActivity {

String url="http://ly-and-tl.uicp.cn:42696/AndroidServer/b";//服务端的servlet页面网址,在web.xml页面中已配置

TextView tv;

Handler handler;

@SuppressLint("HandlerLeak") @Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv=(TextView) findViewById(R.id.textView);

handler=new Handler(){

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

super.handleMessage(msg);

if(msg.what==3){//后台发送消息切换回主线程后的处理

CharSequence ss=(CharSequence)msg.obj;//拿到消息的包裹信息

System.out.println(ss+"MainActivity");

if(ss!=null){

tv.setText(ss);//只能在主线程更新UI

}

}

}

};

new HttpThread(url,handler).start();

}

}

子线程HttpThread.java

public class HttpThread extends Thread {

String url;

Handler handler;

HttpThread(String url,Handler hand){

this.url=url;

handler=hand;

}

@Override

public void run() {//向后台请求数据

// TODO Auto-generated method stub

//super.run();

URL httpUrl;

try {

httpUrl=new URL(url);

HttpURLConnection conn=(HttpURLConnection)(httpUrl.openConnection());

//打开服务端的某个页面链接就相当于自动调用doGet()方法

conn.setReadTimeout(5000);

//5000秒内不返回就报错

conn.setRequestMethod("GET");

//bufferReader适合中文类,HttpURLConnection的getInputStream()方法返回一个InputStream对象,

//InputStreamReader接收InputStream对象能实例化一个InputStreamReader,

//bufferedReader能接收一个InputStreamReader对象实例化自己

BufferedReader buff=new BufferedReader(new InputStreamReader(conn.getInputStream()));

StringBuffer sb=new StringBuffer();

String str;

while((str=buff.readLine())!=null){

//readLine()返回String对象,从后台拿到数据存到String对象

sb.append(str);

}

System.out.println(sb+"HttpThread");

Message msg=handler.obtainMessage(3);

msg.obj=sb;

handler.sendMessage(msg);

//发送到主线程,立刻切换线程

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

最后别忘了对网络权限的设置。

运行效果:

android service前台服务器,Android网络前台向服务端页面请求数据相关推荐

  1. android service是什么,Android service是什么 Android service详解

    Android service是什么 Android service详解 时间:2017-04-06     来源:Android开发学习网 什么是Android Service? service是A ...

  2. android 仿微信demo————注册功能实现(服务端)

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

  3. android 仿微信demo————登录功能实现(服务端)

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

  4. android客户端访问服务端,服务端返回json数据

    json这里选用了fast-json 先看服务端代码如下 package novelserver.servlet;import java.io.IOException; import java.io. ...

  5. 并发请求多 服务器响应慢 post,从服务端视角看高并发问题

    所谓服务器大流量高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈. 服务端看高并发 服务端处理请求需要耗费服务端的资源,比如能同时开启的 ...

  6. 在以TCP为连接方式的服务器中,为什么在服务端设计当中需要考虑心跳?

    https://www.zhihu.com/question/35013918 在以TCP为连接方式的服务器中,为什么在服务端设计当中需要考虑心跳? 这个心跳包除了告知服务端我在线,还有其他作用吗?比 ...

  7. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

    [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...

  8. Qt:Qt实现Winsock网络编程—TCP服务端和客户端通信(多线程)

    Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 前言 感觉Winsock网络编程的api其实和Linux下网络编程的api非常像,其实和其他编程语言的网络编程都差不太多.博主用Qt ...

  9. java-php-python-springboot网络记账设计服务端计算机毕业设计

    java-php-python-springboot网络记账设计服务端计算机毕业设计 java-php-python-springboot网络记账设计服务端计算机毕业设计 本源码技术栈: 项目架构:B ...

最新文章

  1. javascript中重要概念-闭包-深入理解
  2. Python列表解析式总结
  3. c语言电子地图程序,C语言 电子地图信息
  4. 【Flink】Flink消费Kafka数据时指定offset的五种方式
  5. 提防最近一些公司的小九九!
  6. 孙鑫VC学习笔记:第七讲 对话框
  7. You must install signalwire-client-c to build mod_signalwire
  8. 基于dde-top-panel+tint2+plank+conky的Deepin(深度)桌面美化
  9. mysql修改表只读属性_VF设置的疑问
  10. 【Docker】Failed to get D-Bus connection: Operation not permitted解决
  11. 实现自己人生小目标之微信抢红包项目
  12. matlab画图三维立体,matlab的三维图形绘制
  13. 力扣每日一题第495题提莫攻击
  14. 网站网页中加入各种分享按钮功能 百度分享
  15. 笔记本安装黑苹果 MacOS Catalina 10.15
  16. 电脑无法打开计算机是怎么回事,电脑的office软件突然打不开怎么办
  17. 刷脸支付帮助线下实体经济突破营销困境
  18. 版本控制:git和svn
  19. Fast unfolding of communities in large networks
  20. 一文读懂成交量、换手率

热门文章

  1. ANSYS FLUENT三维结构网格数值计算及后处理——汽车外流
  2. 2020年6月6日更新 上海居住证办理流程
  3. Jmeter之JAVA Request的应用
  4. 页面质量优化提升关键词排名
  5. 2017年IoT开发者调查报告
  6. Python4班平均成绩统计_期中考试了,十二个班的成绩,如何使用excel计算平均值、排名...
  7. 【Python第4课】输入
  8. 【计算机视觉】Selective Search for Object Recognition论文阅读2
  9. 【学习记录】之二:centos7快速配置goolge-test
  10. windowsxp系统修复命令