`

NanoHttpd 构建android 手机端的HttpServer

 
阅读更多

NanoHttpd是Github上的一个开源项目, 通过下载jar包,新建一个android project, 使用 extends NanoHTTPD 就可以实现一个apk 当WebServer。

示例为显示访问此server的Useragent 和将UA写入文件
import fi.iki.elonen.NanoHTTPD;
public  class UAsetHttpServer extends NanoHTTPD {
    public UAsetHttpServer() throws IOException {
        super(8080);
    }

    @Override
    public Response serve(IHTTPSession session) {

        System.out.println("UAsetHttpServer, method serve start-----");

        String msg = "<html><body>\n";
        msg += "<script> function getUa() {return navigator.userAgent; } document.write('browser.ua = ' + getUa()); </script>";
        msg += "</body></html>\n";

        if(session.getUri().equals("/")){
            String ua = session.getHeaders().get("user-agent");
            System.out.println("UAsetHttpServer, session.getHeaders()-----"+ua);  
            try{
                File file = new File("/data/local/tmp/useragent.txt");
                FileOutputStream fs = new FileOutputStream(file);
                OutputStreamWriter ow = new OutputStreamWriter(fs);
                ow.write(ua);
                ow.close();
                System.out.println("UAsetHttpServer, save useragent to file successfully.");   
            }catch(Exception e){
                System.out.println("UAsetHttpServer, save useragent to file error:"+e.getMessage());  
            }
        }
        return new NanoHTTPD.Response(msg);
    }

}

 调用的地方:

public class AndroidBrowserUAActivity extends Activity {
    private UAsetHttpServer server;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
        try {
            server = new UAsetHttpServer();
            server.start();
        } catch (IOException e) {
            e.printStackTrace();
            server = null;
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (server != null) {
            server.stop();
        }
    }

}

 

当以上的Server起来之后,使用地址http://127.0.0.1:8080/就可以访问。

分享到:
评论
1 楼 weiwu83 2016-07-21  
为什么我在手机内访问127.0.0.1访问不了呀

相关推荐

    android使用nanohttpd2.3.1搭建httpserver实现文件上传及HTML5播放视频

    android使用nanohttpd搭建httpserver实现文件上传及HTML5播放视频,亲测可用。 内含最新nanohttpd-all-2.3.1.jar,直接下载代码引入到eclipse就能用。HTML5播放使用的时候,需要把工程的movie.mp4拷贝到SD卡根目录下...

    android studio使用NanoHTTPD 创建 http 服务器打开html并使用webView打开页面

    首先,`Android Studio`是Google推出的一款强大的Android应用程序集成开发环境,它提供了代码编辑、调试、构建、测试等一系列功能,极大地提高了开发效率。 `NanoHTTPD`是一个轻量级的Java HTTP服务器库,它的特点...

    AndroidHttpServer:使用NanoHTTPD的Android应用程序中的HTTP服务器

    在Android平台上,构建一个HTTP服务器可以为各种应用场景提供便利,比如本地数据共享、调试或测试网络请求。NanoHTTPD是一个轻量级、易用的Java HTTP服务器库,它允许开发者在Android应用程序中快速搭建自己的HTTP...

    Android NanoHttpd搭建webservice

    总的来说,通过Android NanoHttpd,开发者可以轻松地在Android设备上搭建一个简单的HTTP服务器,为H5页面和其他客户端提供webservice功能。同时,配合AIDL,你可以实现更复杂的跨进程通信,构建更强大的Android应用...

    Android下socket模拟http server

    总结来说,通过Android的Socket编程,我们可以构建一个简单的HTTP服务器,允许外部设备访问本地存储的HTML文件。这个过程中涉及Android权限管理、网络编程、HTTP协议解析以及可能的文件I/O操作。同时,结合特定的...

    aws.zip_HTTPServer_android_android httpserver_aws android_文件传输

    描述中提到的“android httpserver 的简单实现 可以传输文字 查看手机文件目录等”表明这个HTTP服务器不仅能够处理文本数据的传输,还具备浏览和访问手机本地文件系统的能力。这可能是通过创建一个简单的Web界面,让...

    android http server 服务

    标题"android http server 服务"指的可能是在Android设备上构建一个小型的HTTP服务器,使得设备可以作为一个服务端,接收和处理来自其他设备的HTTP请求。 描述中的场景涉及到两台Android设备,一台作为热点主机,另...

    NanoHttp android 服务器

    NanoHttpd是一个轻量级的HTTP服务器库,适用于Android开发者在移动设备上快速搭建本地服务器。这个库使得在Android应用中实现简单的...通过理解并实践NanoHttpd的使用,你可以提升在Android平台上构建网络服务的能力。

    Android手机端服务器例子

    在Android平台上构建一个手机端服务器,能够实现诸如访问设备数据、在线播放手机视频等功能,是一项技术挑战但也充满可能性。这个项目以"androidasync"作为标签,意味着它可能使用了AndroidAsync库,这是一个专为...

    Android 上的http server程序

    在Android平台上创建一个HTTP服务器是一项有趣的挑战,因为它涉及到将服务器端的功能集成到移动设备中。在本篇中,我们将深入探讨如何在Android设备上搭建一个HTTP服务器,特别关注使用i-jetty-3.1库来实现这一目标...

    android httpserver

    在Android平台上,构建一个HTTP服务器可以为应用程序提供各种服务,如本地数据共享、测试网络请求或者作为调试工具。本文将详细介绍如何使用nanohttpd库在Android设备上实现一个简单的HTTP服务器。 nanohttpd是一个...

    android下面的webserver的实现

    1. **服务器端框架**:Android Web服务器的实现通常依赖于特定的服务器端框架,如NanoHTTPD或Apache MINA。这些框架提供了处理HTTP请求、响应、文件服务等功能的基础。 2. **Socket通信**:HTTP是基于TCP/IP的协议...

    nanohttpd-2.3.1.jar包

    最后,`nanohttpd-2.3.1`版本的jar文件包含了NanoHttpd库的这个特定版本,可以直接在Android项目中作为依赖使用,无需构建源代码。在Android Studio中,可以通过添加以下依赖项到`build.gradle`文件来引入: ```...

    HttpServerTest

    在Android平台上,构建一个HttpServerTest项目涉及到许多关键知识点,主要涵盖了网络编程、服务器搭建以及资源分享等。本文将深入探讨这些技术要点。 首先,我们要理解Android系统如何支持HTTP服务器的实现。...

    Android利用Andserver搭建服务器的详细教程

      在手机上有一个功能,但是需要使用电脑控制什么时候开始这个功能,然后上网搜索,找到了AndServer可以满足要求,我只是实现了简单的功能,如果感兴趣的话,可以深入的研究一下。 地址如下:...

    在Android上实现HttpServer的示例代码

    Android实现HttpServer示例代码解析 HttpServer 的必要性 在 Android 系统中,需要实现一个微型服务器来实现实时接收数据的功能。这种需求在最近的项目中非常常见。为了实现这个功能,我们需要选择合适的服务器...

    android_httpserver:Android版本的HttpServer

    android_httpserver Android版本的HttpServer Android版本的HttpServer Android本地的httpServer服务器 支持get和post请求 处理方式和参考TestSample 核心代码参考lib_httpserver

    Android studio 连接SQL Server.rar

    Android Studio 读取SQL Server数据库中的数据,创建线程来获取SQL Server中的数据 ,在配置文件Androidmanifest.xml中添加&lt;uses-permission android:name="android.permission.INTERNET"/&gt;,否则无法网络连接的 亲...

    Android 连接C# SQLserver

    本话题聚焦于如何让Android应用程序通过Web服务与C#构建的SQL Server数据库进行交互。这个过程涉及到多个技术栈,包括Android客户端开发、Web服务设计(通常为SOAP或RESTful API)以及后端的C#编程和SQL Server...

Global site tag (gtag.js) - Google Analytics