0

我正在尝试使用带有嵌入式 Nanohttpd 服务器的 Web 视图。我可以让两者都工作,但不能互相工作。

我可以将 WebWiew 请求发送到其他未嵌入的代理,这很有效。或者我可以从 firefox 向嵌入式代理发送请求并返回修改后的响应。

但我无法将 webview 请求发送到嵌入式代理,有没有人尝试过或遇到过这个?

我能提出的唯一假设是它失败的原因是我可能需要在后台或另一个线程上运行服务器?

我正在使用此处的代码来设置 webview 代理,我可以确认它确实有效WebView android 代理

4

1 回答 1

2

看看这里 你可以使用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();
于 2013-09-03T16:25:25.860 回答