android studio实例 开发网络程序,如何用自己的笔记本电脑做服务器

Android网络编程之传递数据给服务器(一)
网络之传递数据给服务器(一)
请尊重他人的劳动成果,转载请注明出处:Android网络编程之传递数据给服务器(一)
因为Android程序需要和服务器进行通信,所以需要服务器端提供的支持。
一、通过GET方式传递数据给服务器
通过GET方式上传数据主要适用于数据大小不超过2KB,且对安全性要求不高的情况下。
1.创建服务器端:
服务器端项目结构:
第一步:创建控制器Servlet
package com.jph.sgm.
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.annotation.WebS
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
* Servlet implementation class ServletForGETMethod
@WebServlet("/ServletForGETMethod")
public class ServletForGETMethod extends HttpServlet {
private static final long serialVersionUID = 1L;
* @see HttpServlet#HttpServlet()
public ServletForGETMethod() {
// TODO Auto-generated constructor stub
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//获取请求的参数(使用utf-8进行解码,然后用进行ISO8859-1编码)
String name=new String(request.getParameter("name").getBytes("ISO8859-1"),"utf-8");
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
System.out.println("name:"+name+"
pwd:"+pwd);
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
第二步:测试Servlet
发布项目并在中输入:https://localhost:8080/ServerForGETMethod/ServletForGETMethod?name=aa&pwd=124
可以再控制台看到如下图的输出:
至此服务器端项目已经完成。下面开始创建Android端项目。
2.创建Android端:
Android端项目结构:
第一步:创建Android端项目的业务逻辑层
核心代码:SendDateToServer.java:
package com.jph.sdg.
import java.net.HttpURLC
import java.net.URL;
import java.net.URLE
import java.util.HashM
import java.util.M
import android.os.H
* 通过GET方式向服务器发送数据
* @author jph
public class SendDateToServer {
private static String url="https://10.219.61.117:8080/ServerForGETMethod/ServletForGETMethod";
public static final int SEND_SUCCESS=0x123;
public static final int SEND_FAIL=0x124;
public SendDateToServer(Handler handler) {
// TODO Auto-generated constructor stub
this.handler=
* 通过Get方式向服务器发送数据
* @param name 用户名
* @param pwd
public void SendDataToServer(String name,String pwd) {
// TODO Auto-generated method stub
final Mapmap=new HashMap();
map.put("name", name);
map.put("pwd", pwd);
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
if (sendGetRequest(map,url,"utf-8")) {
handler.sendEmptyMessage(SEND_SUCCESS);//通知主线程数据发送成功
//将数据发送给服务器失败
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}).start();
* 发送GET请求
* @param map 请求参数
* @param url 请求路径
* @throws Exception
boolean sendGetRequest(Map param, String url,String encoding) throws Exception {
// TODO Auto-generated method stub
//https://localhost:8080/ServerForGETMethod/ServletForGETMethod?name=aa&pwd=124
StringBuffer sb=new StringBuffer(url);
if (!url.equals("")&!param.isEmpty()) {
sb.append("?");
for (Map.Entryentry:param.entrySet()) {
sb.append(entry.getKey()+"=");
sb.append(URLEncoder.encode(entry.getValue(), encoding));
sb.append("&");
sb.deleteCharAt(sb.length()-1);//删除字符串最后 一个字符“&”
HttpURLConnection conn=(HttpURLConnection) new URL(sb.toString()).openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");//设置请求方式为GET
if (conn.getResponseCode()==200) {
第三步:创建Activity
package com.jph.sdg.
import com.jph.sdg.R;
import com.jph.sdg.service.SendDateToS
import android.os.B
import android.os.H
import android.os.M
import android.app.A
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.EditT
import android.widget.T
* 通过GET方式向服务器发送数据,通过GET方式上传数据主要适用于数
* 据大小不超过2KB,且对安全性要求不高的情况下。
* @author jph
public class MainActivity extends Activity {
private EditText edtName,edtP
private Button btnS
Handler handler=new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case SendDateToServer.SEND_SUCCESS:
Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
case SendDateToServer.SEND_FAIL:
Toast.makeText(MainActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtName=(EditText)findViewById(R.id.edtName);
edtPwd=(EditText)findViewById(R.id.edtPwd);
btnSend=(Button)findViewById(R.id.btnSend);
btnSend.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String name=edtName.getText().toString();
String pwd=edtPwd.getText().toString();
if (edtName.equals("")||edtPwd.equals("")) {
Toast.makeText(MainActivity.this, "用户名或密码不能为空", Toast.LENGTH_LONG).show();
new SendDateToServer(handler).SendDataToServer(name, pwd);
至此Android端项目已经完成了。下面就让我们看一下APP运行效果吧:
Android运行效果图:
二、关于通过GET方式传递数据给服务器时,中文乱码的解决方案
当客户端向服务器发送中文时服务器端会出现乱码现象,如下图:
vcq9tKu13cr9vt24+Lf+zvHG98qxo6zW0M7EwtLC67XEveK+9re9sLg=">
出现乱码的原因主要是,Android客户端我们采用的是UTF-8编码,而Tomcat默认采用的是ISO8858-1编码,所以会出现中文乱码的现象。
解决方案有两种:
第一种解决方案:
是使用UTF-8解码请求参数得到汉字,然后再通过ISO8859-1进行编码。此时服务器端的Servlet是:
package com.jph.sgm.
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.annotation.WebS
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
* Servlet implementation class ServletForGETMethod
@WebServlet("/ServletForGETMethod")
public class ServletForGETMethod extends HttpServlet {
private static final long serialVersionUID = 1L;
* @see HttpServlet#HttpServlet()
public ServletForGETMethod() {
// TODO Auto-generated constructor stub
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//获取请求的参数(使用utf-8进行解码,然后用进行ISO8859-1编码)
String name=new String(request.getParameter("name").getBytes("ISO8859-1"),"utf-8");
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
System.out.println("name:"+name+"
pwd:"+pwd);
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
运行结果如下图:
第二种解决方案:
下面我们采用过滤器的方式来解决乱码的问题:
第一步:建立一个Filter过滤器。
EncodingFilter.java
package com.jph.sgm.
import java.io.IOE
import javax.servlet.F
import javax.servlet.FilterC
import javax.servlet.FilterC
import javax.servlet.ServletE
import javax.servlet.ServletR
import javax.servlet.ServletR
import javax.servlet.annotation.WebF
import javax.servlet.http.HttpServletR
* Servlet Filter implementation class EncodingFilter
@WebFilter("/*")
public class EncodingFilter implements Filter {
* Default constructor.
public EncodingFilter() {
// TODO Auto-generated constructor stub
* @see Filter#destroy()
public void destroy() {
// TODO Auto-generated method stub
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req=(HttpServletRequest)
if ("GET".equals(req.getMethod())) {
HttpServletRequestEncodingWrapper wrapper=new HttpServletRequestEncodingWrapper(req);
chain.doFilter(wrapper, response);
req.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
* @see Filter#init(FilterConfig)
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
上面的过滤器因为设置了过滤路径为*/所以会过滤所有的Servlet。
在上面的过滤器中用到了一个包装器,HttpServletRequestEncodingWrapper.java
package com.jph.sgm.
import java.io.UnsupportedEncodingE
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletRequestW
public class HttpServletRequestEncodingWrapper extends
HttpServletRequestWrapper {
private HttpServletR
public HttpServletRequestEncodingWrapper(HttpServletRequest request) {
// TODO Auto-generated constructor stub
super(request);
this.request=
public String getParameter(String name) {
// TODO Auto-generated method stub
String value=request.getParameter(name);
if (value!=null) {
try {//用utf-8进行解码,然后用ISO8859-1进行编码
return new String(value.getBytes("ISO8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return super.getParameter(name);
重新运行项目可以看到服务器会将客户端发来的数据用UTF-8进行解码,用ISO8859-1进行编码。运行效果图如下:
Android网络编程之传递数据给服务器(二)——通过POST的方式将数据传递给服务器13被浏览3,582分享邀请回答02 条评论分享收藏感谢收起2添加评论分享收藏感谢收起写回答android小技巧(4)
android开发(15)
Android(8)
当你想要模拟网络数据请求下载文件时,不管是图片、音频或者视频的下载或者上传,完全可以自己搭建一个服务器。
首先你要有一个局域网,wifi环境。
你的手机和你的笔记本电脑都接入这个wifi
如果你的是台式机的话,有线连接接入的路由器就是你手机连接的wifi发射器。
如果你只是简单的模拟下载文件而不需要其他功能,那么你只需要准备好Tomcat和JDK,当然一般你的电脑已经JDK,那么就剩Tomcat了,下载一个就好。tomcat的配置比较简单,只需要在环境变量中添加一个变量,变量值就是你Tomcat的安装路径。然后检验一下,你的tomcat是否已经正确安装。在浏览器中输入localhost:8080,你会看到如下情况就说明你安装成功了!
![正确的结果](http://img.blog.csdn.net/48236?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU5MjAyODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
就这样,你的环境都搭好了。
但是不代表在手机浏览器中输入localhost:8080就能正确访问,这时候手机端是不能识别localhost的,你需要获取你当前的ip地址。
输入命令:ipconfig
获取你的ip地址 :IPv4 的地址就是;ok,现在可以试试了,在你的手机端输入{ip地址}:8080/index.jsp,看看是否出现了一只猫,如果出现了就说明你成功了!
访问:3860次
排名:千里之外
原创:26篇
(3)(3)(3)(3)(2)(7)(1)(1)(2)(2)你的位置: >
> Anroid搭建一个局域网Web服务器
本文的作者是在刚发布过的作者。在文章末尾有作者相关连接。
  很多开发者看到这个标题表示很怪异,Android怎么可能搭建服务器呢?根本用不到呀,这个项目毫无价值。我表示很理解这一类的开发者,毕竟每个人的经验经历都是有限的。
  必须要说说我们的用处(需要用这个功能的人自然不用解释),比如在TV开发中,现在我们有一个电视盒子,上面跑着我们的一个apk,假如我们现在用微信网页或者QQ网络连接了我们的apk软件,我们需要把一个视频传到电视上播放,这个时候是不是需要我们的apk作为服务端来接受文件了?这只是一个例子,可能还有局限性,更多的用处大家自己去发挥噢。
  在写博客之前我已经做了一个Android Http Server的开源项目,我把它取名叫AndServer,AndServer源代码托管在Github:。AndServer是Android Http Server的简写,顾名思义AndServer是Android端Http服务器的一个项目。
  目的在于在Android可以很方便的搭建Http服务器,这几天有人问我局域网Client和Client通信的时候有时候用什么技术比较好,其实我想到的是Socket和Http,我们知道Http是基于Socket的,所以它是一个非常成熟的Socket,所以我选择了用Http来实现,今天的博客内容也是主要讲Android端如何搭建一个Http服务器。
AndServer如何引用
  如果不想研究原理,只是想快速解决项目中的问题的同学,直接依赖AndServer,具体用法往下看,或者从Github上下载。这里给出AndroidStudio和Eclipse的使用方式:
Eclipse使用Jar包,如果需要依赖源码,请自行下载。
AndroidStudio使用Gradle构建添加依赖(推荐)
compile ‘com.yanzhenjie:andserver:1.0.1′
Android端用什么技术实现Http服务器
  ApacheHttpCore是一个优秀的Http底层框架,支持构建服务器,支持构建客户端,所以我们第一个版本选择了Apache的HttpCore,因为Android弃用了ApacheHttpClient相关API,代码中会有弃用的警告,不过这一点大家不要担心,下面会给出解决方案。
Android弃用了HttpClient后怎么继续使用HttpClient
  Android6.0之后SDK中删除HttpClient相关的API,我看了后提示我们,如果还想继续使用HttpClient的话:
方案一:AndroidStuid主module的gradle中配置:
useLibrary ‘org.apache.http.legacy‘
  如果提示编译不过的话,需要在android-sdk-windows\platforms\android-23\optional下检查有没有以下两个文件:
optional.json
org.apache.http.legacy.jar
如果你的SDK下没有org.apache.http.legacy.jar的话。
方案二:如果你使用的是Eclipse
  拷贝android-sdk-windows\platforms\android-23\optional下的org.apache.http.legacy.jar到你项目的libs下就完结。
方案三:下载Apache的jar包(不推荐)
  从Apache官网下载HttpClient和HttpCore的jar包导入到项目。地址是:。
  但是我推荐方案一和方案二,因为AndroidSDK中删除了HttpClient的api,但是手机系统里面还是有HttpClient的api的。方案一和二的原理最终都是引用SDK下android-sdk-windows\platforms\android-23\optional下的org.apache.http.legacy.jar这个jar包到项目中,是Google处理过的jar,添加了AndroidHttpClient等适合Android使用的api,体积相对从Apache官网下载的jar小的多。
如何使用AndServer
  这里先给大家看下AndServer怎么用,下一步详解如何一步步用HttpCore实现一个简易的HttpServer。
(一)实现AndServerRequestHandler接口,相当Servlet
  我们每写一个服务端接口,就要一个对应的类来处理,这里要实现AndServerRequestHandler接口,相当于Java继承Servet一样,我们只需要处理Request,在Response中给出响应即可:
public class AndServerTestHandler implements AndServerRequestHandler {
public void handle(HttpRequest rq, HttpResponse rp, HttpContext ct) throws HttpException, IOException {
response.setEntity(new StringEntity(&请求成功。&, &utf-8&));
(二)在AndServer上注册接口名称,并启动服务器
  在启动AndServer的时候最好放在Service中,这里给出启动的关键代码。指定服务器的端口号,并注册接口,再启动服务器:
AndServerBuild andServerBuild = AndServerBuild.create();
andServerBuild.setPort(4477);// 指定http端口号。
// 注册接口。
andServerBuild.add(&test&, new AndServerTestHandler());
// 这里还可以注册很多接口。
// 构建AndServer并启动服务器。
AndServer andServer = andServerBuild.build();
andServer.launch();
到这里就完成了一个Android WebServer的搭建,我们已经可以通过浏览器或者来访问我们的WebServer了。
(三)其他设备如何访问
  如果是浏览器方法,和我们普通访问网站没有区别,比如访问我们上面的接口:
Android本机访问的地址:http://locahost:4477/test
局域网其他设备访问地址:http://192.168.1.116:4477/test
  如果是其它Android系统的设备,推荐来访问,NoHttp是我的另一个Http客户端的项目,和AndWeb正好是相对的,一个做服务端,一个做客户端。
到这里怎么用AndServer和Android搭建服务端的教程就完了,如果想自己尝试利用HttpCore搭建一个Http服务端的话,请往下看。
AndroidCore实现一个简易的Http服务器
  其实里边的东西比较复杂个人感觉如果你不想自己写一个这样的框架的,没有太大必要看完,但是我推荐大家往下看噢,我相信你会有收获的。这里讲解下关键的代码,一共有六步:
(一)ServerSocket构建服务端连接
  我们知道Http是基于Socket的,那么服务端肯定是ServerSocket了,所以我们这里也是需要一个ServerSocket来接受客户端请求的:
ServerSocket mServerSocket = new ServerSocket();
mServerSocket.setReuseAddress(true);
mServerSocket.bind(new InetSocketAddress(mPort));// 绑定端口
(二)HttpProcessor增加Http协议处理器
  这个就是添加Http协议拦截器,都是Http基本信息。
// HTTP协议拦截器。
BasicHttpProcessor httpProcessor = new BasicHttpProcessor();
httpProcessor.addInterceptor(new ResponseDate());
httpProcessor.addInterceptor(new ResponseServer());
httpProcessor.addInterceptor(new ResponseContent());
httpProcessor.addInterceptor(new ResponseConnControl());
(三)HttpParams初始化Http基本信息
  初始化Http连接的信息,比如超时时间,缓存区大小,是否使用GZIP等。
// HTTP Attribute.
HttpParams httpParams = new BasicHttpParams();
httpParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 5000)
.setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024)
.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
.setParameter(CoreProtocolPNames.ORIGIN_SERVER, &WebServer/1.1&);
(四)HttpRequestHandlerRegistry增加接口名称
  这里要用HttpRequestHandlerRegistry把我们的RequestHandler注册进来,这一步也是最重要的,就是我们的接口名称,相当于是注册Servlet到web.xml中一样。
举个例子,假设访问严振杰的主页,我的主页下假设有一个login的接口,那我们的地址是:http://www.yanzhenjie.com/login,我们的Android Web Server也要实现这样一个可以访问的地址,就要注册一个login的接口,所以这里是增加接口名称:
// 注册Http接口。
HttpRequestHandlerRegistry handlerRegistry = new HttpRequestHandlerRegistry();
handlerRegistry.register(&/login&, new RequestLoginHandle());// 增加登录接口
handlerRegistry.register(&/download&, new RequestTestHandle());// 增加下载接口
  这里可以注册很多个接口,我们后面的接口对象是实现了HttpCore中HttpRequestHandler接口的自定义类,比如我们上面的RequestLoginHandle的实现是:
public class RequestLoginHandle implements HttpRequestHandler {
public void handle(HttpRequest rq, HttpResponse rp, HttpContext c) {
// 只要在这里处理HttpRequest,如果要发出响应数据,用HttpResponse
(五)HttpService创建Http服务
  前面准备的几步都是为这一步准备参数的,把我们前面准备好的httpProcessor、httpParams、handlerRegistry都传到HttpService,为下一步的Connection做好准备。
// 创建HTTP服务。
HttpService httpService = new HttpService(httpProcessor, new ConnectionReuseStrategy(), new HttpResponseFactory());
httpService.setParams(httpParams);
httpService.setHandlerResolver(handlerRegistry);
(六)Socket、DefaultHttpServerConnection处理客户端请求
  上面的工作都做完了,就用到我们最开始准备好的ServerSocket来接受客户端的连接的socket了,接受到一个客户端的连接后,把刚才的httpParams和socket绑定到HttpServerConnection中,开始处理请求,下面代码中有一个RequestHandleTask类,这是一个单独的线程,因为每个请求都不能干涉服务器的主线程,所以这里新开一个非阻塞的线程去处理每一个请求:
while (isLoop) {
if (!mServerSocket.isClosed()) {
// 阻塞接受客户端。
Socket socket = mServerSocket.accept();
DefaultHttpServerConnection serverConnection = new DefaultHttpServerConnection();
// 接受到一个请求到,把请求和刚才的param绑定到connection中。
serverConnection.bind(socket, httpParams);
// 开启一个线程去处理这个请求,不阻塞当前线程。
RequestHandleTask requestTask = new RequestHandleTask(this, httpService, serverConnection);
requestTask.setDaemon(true);
AndWebUtil.executeRunnable(requestTask);
  在RequestHandleTask中的run方法中,我们只要判断HttpServerConnection是连接的,就调用HttpService的handleRequest方法交给HttpCore去分析请求,并自动分发到我们刚才注册的login接口中。
while (mServerConnection.isOpen()) {
mHttpService.handleRequest(mServerConnection, new BasicHttpContext());
  当HttpCore分析出来这个连接中的请求符合我们刚才注册的接口:
handlerRegistry.register(&/login&, new RequestLoginHandle());// 增加登录接口
  它会自动调用RequestLoginHandle的hande()方法,因为我们实现了HttpRequestHandle接口。
到这里,如何利用HttpCore搭建一个Android Http Server就完成了。
把几个步骤合起来
  有的同学可能不会把上面的代码整合起来,这里给出完整的代码:
ServerSocket mServerSocket = new ServerSocket();
mServerSocket.setReuseAddress(true);
mServerSocket.bind(new InetSocketAddress(mPort));
// HTTP协议拦截器。
BasicHttpProcessor httpProcessor = new BasicHttpProcessor();
httpProcessor.addInterceptor(new ResponseDate());
httpProcessor.addInterceptor(new ResponseServer());
httpProcessor.addInterceptor(new ResponseContent());
httpProcessor.addInterceptor(new ResponseConnControl());
// HTTP Attribute.
HttpParams httpParams = new BasicHttpParams();
httpParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, timeout)
.setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024)
.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
.setParameter(CoreProtocolPNames.ORIGIN_SERVER, &WebServer/1.1&);
// 注册Http接口。
HttpRequestHandlerRegistry handlerRegistry = new HttpRequestHandlerRegistry();
for (Map.Entry&String, AndServerRequestHandler& handlerEntry : mRequestHandlerMap.entrySet()) {
handlerRegistry.register(&/& + handlerEntry.getKey(), new DefaultHttpRequestHandler(handlerEntry.getValue()));
// 创建HTTP服务。
HttpService httpService = new HttpService(httpProcessor, new DefaultConnectionReuseStrategy(), new DefaultHttpResponseFactory());
httpService.setParams(httpParams);
httpService.setHandlerResolver(handlerRegistry);
* 开始接受客户端请求。
while (isLoop) {
// 接收客户端套接字。
if (!mServerSocket.isClosed()) {
Socket socket = mServerSocket.accept();
DefaultHttpServerConnection serverConnection = new DefaultHttpServerConnection();
serverConnection.bind(socket, httpParams);
// Dispatch request handler.
RequestHandleTask requestTask = new RequestHandleTask(this, httpService, serverConnection);
requestTask.setDaemon(true);
AndWebUtil.executeRunnable(requestTask);
} catch (Exception e) {
} finally {
  RequestHandleTask类的完整代码:
public class RequestHandleTask extends Thread {
private final HttpService mHttpS
private final HttpServerConnection mServerC
private DefaultAndServer mWebServerT
public RequestHandleTask(DefaultAndServer webServerThread, HttpService httpservice, HttpServerConnection conn) {
this.mWebServerThread = webServerT
this.mHttpService =
this.mServerConnection =
public void run() {
while (mWebServerThread.isLooping() && mServerConnection.isOpen()) {
this.mHttpService.handleRequest(this.mServerConnection, new BasicHttpContext());
} catch (IOException e) {
} catch (HttpException e) {
} finally {
this.mServerConnection.shutdown();
} catch (IOException e) {
好了咯,主要代码就是这些,剩下的自己去发挥吧!
作者的博客:
作者的个人主页:
转载请注明: &
与本文相关的文章}

我要回帖

更多关于 android studio实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信