搭建本地httpserver
来源:互联网 发布:电脑正在准备windows 编辑:程序博客网 时间:2024/05/21 03:16
使用NanoHTTPD搭建android本地httpserver
搭建本地httpserver是为了解决android不支持本地ajax访问(当然可以通过对webview的设置也可以支持本地ajax访问,见文章末尾)
NanoHTTPD架包下载地址
1. 启动httpserver
// 在一个子线程中启动这个httpservermhttpserver = HttpServer.getHttpServer(8080, MainActivity.this);try { mhttpserver.start(); } catch (IOException e) { e.printStackTrace(); }
2. 销毁httpserver
@Override protected void onDestroy() { super.onDestroy(); if (mhttpserver != null) { mhttpserver.stop(); } }
3. httpserver实例
public class HttpServer extends NanoHTTPD { private static HttpServer httpServerinstance = null; public static HttpServer getHttpServer(int port, Context context) { if (null == httpServerinstance) { httpServerinstance = new HttpServer(port, context); } return httpServerinstance; } private HttpServer(int port, Context context) { super(port); } @Override public Response serve(IHTTPSession session) { Log.i("lsw", session.getUri()); return responseCourseStream(session); } public Response responseCourseStream(IHTTPSession session) { String uri = session.getUri(); String mime = getMimeTypeForFile(uri); Log.i("lsw", "mime:" + mime); uri = uri.substring(1); try {// InputStream is = mContext.getResources().getAssets().open(uri);// 根据不同的路径进行修改 FileInputStream is = new FileInputStream(Environment.getExternalStorageDirectory() + "/ubcoll/game/" + uri); return newChunkedResponse(Response.Status.OK, mime, is); } catch (IOException e) { e.printStackTrace(); } return newFixedLengthResponse("404"); }}
4. webview调用
// path 需与3中的路径连接起来,连成完整路径即可// 比如这里的path只传index.html,3中的路径就要指到index.html父目录的路径为止wv.loadUrl("http://localhost:8080/" + path);
5. 设置webview,支持本地ajax访问
//解决XMLHttpRequest cannot load file from android asset folderws.setJavaScriptEnabled(true);ws.setPluginState(PluginState.ON);ws.setAllowFileAccess(true);ws.setAllowContentAccess(true);ws.setAllowFileAccessFromFileURLs(true);ws.setAllowUniversalAccessFromFileURLs(true);
0 0
- 搭建本地httpserver
- Python搭建HttpServer
- python快速搭建HttpServer
- python 搭建httpserver
- 在终端本地建立HttpServer
- python搭建简易HTTPServer服务
- 使用python中的HTTPServer创建本地站点
- HttpServer
- httpserver
- nodejs搭建一个简单的httpserver
- Python学习笔记(十一)—搭建简单的HttpServer
- Java HttpServer
- Httpserver跳转
- java httpserver
- python HTTPServer
- iso httpServer
- HTTPServer入门
- HttpClient -- HttpServer
- The volume XXX is not re-mountable in read/write mode.
- 产品经理的工作
- 常用的webpack命令
- 2.Gradle的学习系列
- shell数组
- 搭建本地httpserver
- css-盒模型及相关属性
- RecyclerView Item置顶的优雅解决方案(点击置顶、刷新置顶等)
- 自定义viewpager与自定义imageview实现图片显示
- 图像数据行4字节 对齐
- Linux执行shell脚本方式及区别&命令后台运行
- 代码备忘
- Spark RDD之Partitioner
- Linux/Android——输入子系统input_event传递 (二)