2013-05-06 5 views
0

Я хочу просмотреть веб-сайт с прокси-сервером, который у меня уже есть (с приложениями, которые я хочу сделать, конечно). я хочу изменить его программным способом (без перехода к настройкам или другим 3-мя приложениям).Настройка прокси-сервера Android

вот что я сделал:

public class WebViewActivity extends Activity { 


WebView web; 
String PROXY_IP = "MyProxy"; 
int PROXY_PORT = MyPort; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.web_view); 

     web = (WebView) findViewById(R.id.webView1); 
     web.setWebViewClient(new myWebClient()); 
     web.getSettings().setJavaScriptEnabled(true); 
     web.loadUrl("MyURL"); 

     if (PROXY_IP != null) {     
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     httpClient.getCredentialsProvider().getCredentials(new AuthScope(PROXY_IP, PROXY_PORT)); 
     new UsernamePasswordCredentials("username","passsword"); 
     HttpHost proxy = new HttpHost(PROXY_IP, PROXY_PORT);    

     } 
    } 

Я использую WebView для этого. я уже пробовал использовать phonegap и просто редактировал актив. но я смущен о каком-то php-коде. поэтому я решил использовать webview вместо этого.

Проблема заключается в том, как сделать мой веб-просмотр с помощью моего прокси.

Примечание: я использую GB 2.3

ответ

1

проблема решена. в webview onCreate Мне нужно позвонить URL. например, web = callURL(); и загрузить URL-адрес loadDatawithBaseUrl. после этого вы должны сделать public class callURL(){. установите там прокси. например

DefaultHttpClient httpClient = new DefaultHttpClient(); 
    HttpHost proxy = new HttpHost("your host", your proxy); //proxy that i need 
    httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy); 
    httpClient.getCredentialsProvider().setCredentials( 
      new AuthScope("your host", your proxy), 
      new UsernamePasswordCredentials( 
        "your username", "your password")); 

, а затем в httpget. позвоните по своему URL-адресу. это оно. удачи

+0

не для веб-просмотра, а для получения данных – Nicolas

0

Попробуйте следующий метод. Я не знаю, правильно это или нет. Просто попробуй.

DefaultHttpClient httpClient = new DefaultHttpClient(); 
httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY,new 
NTCredentials(user, pass, null, null)); 
+0

он говорит, что аргумент 2 приводит к учетным данным. и здесь это 'httpClient.getCredentialsProvider(). setCredentials (AuthScope.ANY, (Credentials) new'. Нужно ли заполнять имя пользователя и пароль с помощью жесткого кода? Или это просто, когда загрузка URL-адреса, его запрашивая учетные данные PS: все равно не загружайте веб-страницы – Nicolas

+0

В этом методе вы должны жестко задавать имя пользователя и пароль. – Gunaseelan

+0

Да, я уже пробовал это, но, похоже, я не могу подключиться между web.loadurl и набором myproxy. – Nicolas

1

Вы пробовали библиотеку прокси-сервера Android? https://github.com/shouldit/android-proxy-library

Это может быть решением для вас

+0

задача в том, что мне просто нужно жестко установить порт и хост прокси, поэтому мне не нужна библиотека. – Nicolas

Смежные вопросы