2013-09-03 2 views
0

Я пытаюсь использовать веб-представление со встроенным сервером Nanohttpd. Я могу заставить обоих работать, но не друг с другом.Webview не подключается к nanohttpd

Я могу отправить запросы WebWiew другим прокси, которые не встроены, это работает. или я могу отправить запросы от firefox во встроенный прокси и вернуть измененный ответ.

Но я не могу отправить запросы веб-просмотра встроенному прокси-серверу, кто-нибудь уже пробовал или сталкивался с этим раньше?

Единственная гипотеза, которую я могу решить по причине ее отказа, может возникнуть необходимость запуска сервера в фоновом режиме или в другом потоке?

Я использую код здесь для настройки WebView прокси, который я могу подтвердить, действительно работает WebView android proxy

ответ

2

Взгляните на here Вы можете использовать AsyncTask<?,?,?> запустить встроенный сервер в фоновом потоке пользовательского интерфейса , Я предполагаю, что ваш встроенный сервер под названием «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(); 
+0

Это отлично, это работает безупречно сейчас! –