android 本地服务器创建,以及利用本地服务器分享文件

首先,我们利用众所周知的本地服务器作为平台,这个本地服务器是我修改好的,大家如果想要原版的,我一起放在里面了,可自由下载,下载地址如下:https://download.csdn.net/download/u011228868/11153162

(本来不想要积分的,但是我没找到在那里修改积分。。。。)

其次,我们要写自己的服务器,及继承NanoHTTPD 的webservice,这里面设置我们本地服务器的地址,端口号,以及要分享的内容等等,代码如下:

public class WebService extends NanoHTTPD {

    private static final int PORT = 自己写;

    private static final String REQUEST_ROOT = "/";
    

    public WebService() {
        super(PORT);
    }

    public String getHttpHostName() {
        return "http://" + getHostname() + ":" + PORT;
    }

    public Response serve(IHTTPSession session) {
        if (REQUEST_ROOT.equals(session.getUri()) || session.getUri().equals("")) {
            return responseRootPage();
        }
        return responseFile(session);
    }

    private Response responseRootPage() {
        StringBuilder builder = new StringBuilder();
/**
我拼接的是一个网址,你们可以拼接你们想要的
*/
        builder.append("<!DOCTYPER html><html><body>");
        builder.append("<ol>");
            builder.append("<li> <img hight='100%' width = '100%' src = \"")
                    .append(“拼接内容”)
                    .append("</img></li>");
        
        builder.append("</ol>");
        builder.append("</body></html>\n");

        return NanoHTTPD.newFixedLengthResponse(String.valueOf(builder));

    }

    private Response responseFile(IHTTPSession session) {
        try {
            String uri = session.getUri();
            FileInputStream fis = new FileInputStream(uri);
            return NanoHTTPD.newFixedLengthResponse(Response.Status.OK, "application/octet-stream", fis, fis.available());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response404();
    }

    private Response response404() {
        String builder = "<!DOCTYPE html><html>body>" +
                "Sorry,Can't Found All!" +
                "</body></html>\n";
        return NanoHTTPD.newFixedLengthResponse(builder);
    }
}

写完了?nononono。。。。剩下的我就需要简单了,我就在适当的时机调用他就行了,代码如下:

final WebService webService = new WebService(“参数”);
                    try {
                        webService.start();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

好了,至此,完了,不过,为了防止程序上有内存问题,所以,在你用完这个服务器的时候,别忘了停止服务器

webService.stopServer();

这个方法在原版的服务器里面并没有 ,在我修改的哪个服务器里面有,大家可以参考一下!

猜你喜欢

转载自blog.csdn.net/u011228868/article/details/89706649