【问题标题】:Webview not connecting to nanohttpdWebview 未连接到 nanohttpd
【发布时间】:2013-09-03 10:19:50
【问题描述】:
我正在尝试使用带有嵌入式 Nanohttpd 服务器的 Web 视图。我可以让两者都工作,但不能互相工作。
我可以将 WebWiew 请求发送到其他未嵌入的代理,这很有效。
或者我可以从 firefox 向嵌入式代理发送请求并返回修改后的响应。
但我无法向嵌入式代理发送 webview 请求,有没有人尝试过或遇到过这种情况?
对于它失败的原因,我能提出的唯一假设是我可能需要在后台或另一个线程上运行服务器?
我正在使用此处的代码来设置 webview 代理,我可以确认它确实有效WebView android proxy
【问题讨论】:
标签:
java
android
webview
proxy
nanohttpd
【解决方案1】:
看看here
您可以使用AsyncTask<?,?,?> 在 UI 线程的后台运行您的嵌入式服务器。我假设您的嵌入式服务器名为“HelloServer”,这是一个示例代码:
public class ToRunServer extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
HelloServer helloServer = null;
try {
helloServer = new HelloServer();
} catch (IOException e) {
e.printStackTrace();
}
try {
HelloServer.start();
System.out.println("SERVER START TRIED");
return true;
} catch (IOException e) {
e.printStackTrace();
System.out.println("SERVER START FAILED");
return false;
}
}
protected void onPostExecute(Boolean result) {
}
}
然后在您的 UI 类或活动类中,只需在您的代码中添加一行:
Boolean isServerRunning = new ToRunServer().execute().get();