`

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 nanohttpd 手机端 迷你服务器

    public NanoHTTPD int port throws IOException Java代码 收藏代码 { myTcpPort port; final ServerSocket ss new ServerSocket myTcpPort ; Thread t new Thread new Runnable { public void run {...

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

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

    Android下socket模拟http server

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

    android http server 服务

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

    Android NanoHttpd搭建webservice

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

    android java http server

    在Android平台上,构建一个Java HTTP服务器是一个有趣且实用的技术挑战,尤其对于开发本地服务或测试网络功能的应用程序来说。这个项目可能涉及到以下关键知识点: 1. **Android基础知识**:理解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 本地服务器 NanoHTTPD(包括我已经修改过的和原版的)

    在这个压缩包中,包含了一个经过修改的NanoHTTPD版本以及原版的源代码,供开发者在Android项目中使用。 NanoHTTPD是一个开源的HTTP服务器,它设计的目标是简单、快速和低内存占用。它的核心思想是将HTTP服务器的...

    http server端模拟器

    http server端模拟器

    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

    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;,否则无法网络连接的 亲...

    JKAndroidWebserver:这是一个示例项目,该项目使用NanoHTTPd在Android上运行Web服务器

    《在Android上构建Web服务器:JKAndroidWebserver与NanoHTTPD的应用》 在移动设备上运行Web服务器的概念虽然看似不寻常,但在特定场景下却有着独特的应用价值。例如,开发者可能需要在Android设备上进行本地数据...

    Android Nanohttpd封装示例代码

    **Android Nanohttpd封装示例代码详解** 在Android开发中,有时我们需要在应用程序内部实现一个简单的HTTP服务器,以便提供本地数据或实现特定功能,如文件上传和下载。Nanohttpd是一个轻量级的HTTP服务器库,它...

    ActiveMQ实现Android端的消息推送,包含Android端和Server端的代码和使用说明

    压缩包中包含Client Android 端和Service 端,Service端采用apache-activemq-5.13.3最新的版本。Android端采用MQTT实现了消息的接收,接收消息的回调是messageArrived方法。 Server端的简要使用说明如下: 1、解压...

Global site tag (gtag.js) - Google Analytics