2015-06-05 4 views
0

Я пытаюсь получить доступ к веб-странице после успешного входа в систему, где я получаю имя пользователя и пароль (из EditTexts в моем приложении «user = (EditText) findViewById (R.id.user); "и" pass = (EditText) findViewById (R.id.pass); ") и отправит его на сервер.«Требуется авторизация» в webview

Проблема заключается в том, что в веб-просмотре отображается текст «Требуется авторизация ....» (после успешного входа в систему) только на телефонах/планшетах с Android 4.2.2, но на 4.4.2, 4.4.4 и 5.0 .1 отлично работает (показывает страницу).

У меня заканчиваются идеи и нужна помощь. Могли бы вы, ребята, помочь мне? Заранее спасибо.

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("user", user.getText().toString())); 
     nameValuePairs.add(new BasicNameValuePair("password", pass.getText().toString())); 

     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "utf-8")); 
     httppost.addHeader("Authorization", "Basic BLA123BLA23BLA32343LSJ"); 

     // Execute HTTP Post Request  
     response = httpclient.execute(); 

     //WebView      
        webview_asd = new WebView(MainScreen.this); 
        webview_asd = (WebView) findViewById(R.id.webview_asd); 
        webview_asd.getSettings().setLoadsImagesAutomatically(true); 
        webview_asd.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
        webview_asd.setWebViewClient(new WebViewClient()); 
        webview_asd.getSettings().setJavaScriptEnabled(true); 


        CookieSyncManager.createInstance (webview_asd.getContext()); 
        CookieSyncManager.getInstance().sync(); 

        cookies = ((AbstractHttpClient) httpclient).getCookieStore().getCookies(); 

        if(cookies != null) 
        { 
         for(Cookie cookie : cookies) 
         { 
          cookieString = cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain();       
          CookieManager.getInstance().setCookie(cookie.getDomain(), cookieString); 
         } 
        } 

        CookieSyncManager.getInstance().sync(); 

       webview_asd.loadURL(URL); 
       webview_asd.setVisibility(View.VISIBLE); 

The WebView страница показывает в «Требуется авторизация. Этот сервер не может подтвердить, что вы имеете права на доступ к документу запрашиваемому. Либо вы указали неправильные учетные данные (например, неверный пароль), или ваш браузер не понимает как предоставить требуемые учетные данные ».

Позже редактирование: Только что выяснилось, что 4.2.2 не поддерживает HTML5, и именно поэтому у меня возникла эта проблема.

ответ

0

Вместо добавления заголовка используйте setHeader.

  httppost.setHeader("Authorization", 
        "Basic BLA123BLA23BLA32343LSJ"); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity httpEntity = response.getEntity(); 
      String html = EntityUtils.toString(httpEntity); 
      //use this in webview url 
+0

Спасибо за ответ, но это не решит проблему. –

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