gpt4 book ai didi

android,在 NanoHTTPD 项目中强制关闭

转载 作者:行者123 更新时间:2023-11-29 00:29:29 26 4
gpt4 key购买 nike

我正在使用 NanoHTTPD 实现自定义 Web 服务器。我有扩展 NanoHTTPD 的 BaseServer 类:

public class BaseServer extends NanoHTTPD {

public BaseServer(int port) {
super(port);
// TODO Auto-generated constructor stub
}

@Override
public Response serve(String uri, Method method,
Map<String, String> header, Map<String, String> parms,
Map<String, String> files) {

StringBuilder sb = new StringBuilder();
sb.append("<html>");
sb.append("<head><title>Debug Server</title></head>");
sb.append("<body>");
sb.append("<h1>Response</h1>");
sb.append("<p><blockquote><b>URI -</b> ").append(uri).append("<br />");
sb.append("<b>Method -</b> ").append(method)
.append("</blockquote></p>");
sb.append("<h3>Headers</h3><p><blockquote>").append(header)
.append("</blockquote></p>");
sb.append("<h3>Parms</h3><p><blockquote>").append(parms)
.append("</blockquote></p>");
sb.append("<h3>Files</h3><p><blockquote>").append(files)
.append("</blockquote></p>");
sb.append("</body>");
sb.append("</html>");
return new Response(sb.toString());

}

以及通过此代码使用此类的 Activity :

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
bs.start();
Toast.makeText(this, "Server Started", 1).show();
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(this, e.getMessage(), 3).show();
}
}

我的服务器正常启动,但是当我从浏览器发送请求时,我的应用程序强制关闭了!

当下面的代码被执行时(它在 try block 中),指针指向最终 block !!! (不是缓存)然后我向我的手机发送强制关闭!!

ByteBuffer fbuf = f.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, f.length());

f 为 null(未发送文件!)并且这段代码应该可以处理这种情况!,不是吗?!

最佳答案

当您在 Android 上运行并写入临时文件时,您需要为您的应用程序添加权限。没有权限,打开文件会抛出异常,导致不好的结果。在我的脑海中,我认为您需要添加到 AndroidManifest.xml 的权限是

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

试试看!

关于android,在 NanoHTTPD 项目中强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com