legongju.com
我们一直在努力
2025-01-14 18:13 | 星期二

android nanohttpd如何处理GET请求

NanoHTTPD是一个轻量级的Android HTTP服务器,用于处理HTTP请求

  1. 首先,确保已经在项目的build.gradle文件中添加了NanoHTTPD的依赖项:
dependencies {
    implementation 'org.nanohttpd:nanohttpd:2.4.1'
}
  1. 创建一个名为MainActivity.java的新文件,并在其中添加以下代码:
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import org.nanohttpd.server.NanoHTTPD;
import org.nanohttpd.server.Server;

public class MainActivity extends AppCompatActivity {

    private static final int PORT = 8080;
    private static final String TAG = "MainActivity";

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

        startServer();
    }

    private void startServer() {
        new Thread(() -> {
            try {
                Server server = new NanoHTTPD(PORT) {
                    @Override
                    public Response serve(String uri, Method method, Map headers,
                                           byte[] body) {
                        if (uri.equals("/")) {
                            return newFixedLengthResponse("Hello, World!", HttpStatus.SC_OK, "text/plain");
                        } else {
                            return newFixedLengthResponse("Not Found", HttpStatus.SC_NOT_FOUND, "text/plain");
                        }
                    }
                };
                server.start();
                Log.d(TAG, "Server started on port " + PORT);
            } catch (IOException e) {
                Log.e(TAG, "Error starting server", e);
            }
        }).start();
    }
}

在这个示例中,我们创建了一个名为startServer的方法,该方法在一个新的线程中启动NanoHTTPD服务器。服务器监听8080端口。当用户访问根URL(“/”)时,服务器返回一个包含"Hello, World!"的文本响应。对于其他URL,服务器返回一个"Not Found"的响应。

  1. 运行应用程序。你应该能看到一个消息,指示服务器已在端口8080上启动。在浏览器或其他HTTP客户端中访问http://localhost:8080/,你应该看到"Hello, World!"的响应。对于其他URL,你将收到"Not Found"的响应。

请注意,由于Android不允许在主线程上运行网络操作,因此我们在一个单独的线程中启动了NanoHTTPD服务器。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/1899.html

相关推荐

  • ZLibrary Android版支持哪些格式

    ZLibrary Android版支持哪些格式

    ZLibrary是一个提供大量电子书籍、文章、期刊、漫画等资源的平台,但它并没有专门为Android系统开发一个版本。不过,ZLibrary提供的文件格式在Android系统上可以...

  • ZLibrary Android版更新频率如何

    ZLibrary Android版更新频率如何

    ZLibrary Android版的更新频率信息未在搜索结果中直接提及。不过,我们可以提供一些相关的信息点来帮助您了解ZLibrary Android版的更新情况。
    ZLibrary And...

  • ZLibrary Android版是否有广告

    ZLibrary Android版是否有广告

    根据最新的信息,ZLibrary Android版没有广告,并且下载速度也很快,非常适合在手机上寻找和阅读电子书。以下是关于ZLibrary的详细信息:
    ZLibrary简介

  • 为何选择ZLibrary的Android应用

    为何选择ZLibrary的Android应用

    ZLibrary 是一个开源的 Android 应用,它提供了许多功能和优点,使其成为许多用户的首选 开源:ZLibrary 是一个开源项目,这意味着任何人都可以查看、修改和分发...

  • android uiautomator如何处理复杂界面

    android uiautomator如何处理复杂界面

    Android UIAutomator 是一个用于自动化用户界面测试的框架,它可以处理复杂的界面。以下是使用 UIAutomator 处理复杂界面的一些建议: 使用 UI Automator Viewer...

  • c# fluentftp如何处理断点续传

    c# fluentftp如何处理断点续传

    在C#中使用FluentFTP库处理断点续传,你需要在上传文件时检查文件大小,并在需要时从上次中断的地方继续上传。以下是一个简单的示例,展示了如何使用FluentFTP实...

  • c# fluentftp有哪些配置选项

    c# fluentftp有哪些配置选项

    C# FluentFTP 是一个功能丰富的 FTP 客户端库,提供了多种配置选项以适应不同的使用场景。以下是一些主要的配置选项: 主机名(Host): 用于指定要连接的 FTP 服...

  • c# fluentftp支持哪些协议

    c# fluentftp支持哪些协议

    C# FluentFTP 支持以下协议: FTP (文件传输协议)
    FTPS (FTP 安全)
    SFTP (SSH 文件传输协议)
    REST (用于 RESTful API 的自定义协议)
    WebDAV...