引言
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