首先,我们利用众所周知的本地服务器作为平台,这个本地服务器是我修改好的,大家如果想要原版的,我一起放在里面了,可自由下载,下载地址如下: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();
这个方法在原版的服务器里面并没有 ,在我修改的哪个服务器里面有,大家可以参考一下!