Android開發利用NanoHttpd搭建伺服器

TA遠方發表於2019-10-28

引言

NanoHTTPD是一個免費、輕量級的HTTP伺服器, 使用Java實現,可以在非常方便地整合到Android應用中去,實現了一個輕量級的 Web Server。

步驟

在客戶端建立一個Server,

public class SimpleServer extends NanoHTTPD {

    public SimpleServer(int port) {
        super(port);
    }

    @Override
    public Response serve(IHTTPSession session) {
        StringBuilder builder = new StringBuilder();
        builder.append("<!DOCTYPE html><html><body>");
        builder.append("<p>Hello! This Android HTTP Server.</p>");
        builder.append("<h1>:)</h1></body></html>\n");
        return newFixedLengthResponse(builder.toString());
    }
}複製程式碼

在繼承頁面Activity類中建立一段程式碼用於啟用伺服器

public class MainActivity extends Activity {
 
    private SimpleServer server;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                //訪問地址: http://127.0.0.1:8080
        server = new SimpleServer(8080);
        try {
            
            // 因為程式模擬的是html放置在asset目錄下,
            // 所以在這裡儲存一下AssetManager的指標。
            server.asset_mgr = this.getAssets();
            
            // 啟動web服務
            server.start();
            
            Log.i("Httpd", "The server started.");
        } catch(IOException ioe) {
            Log.w("Httpd", "The server could not start.");
        }
    }
}複製程式碼

最後, 使用NanoHTTPD需要新增網路許可權

 <uses-permission android:name="android.permission.INTERNET"/>複製程式碼


測試訪問地址: http://127.0.0.1:8080


參考來源:

  • Android之利用NanoHttpd搭建伺服器 點這
  • 使用NanoHTTPD在Android上建立本地伺服器 點這
  • NanoHTTPD-2.3.1.jar 下載地址 點這


相關文章