title: Keep session open from Android app to website in a webview
body: <p>I have an android app that I am creating and I have a log in page as the first intent. This will then open a tabholder and bring the user to the first tab which brings up a webview. The website is a big part of the app and requires the user to be logged in. The website and the app use the same sign in script that is run off the same server so the login information is the same. I want to use the session that was created when logging into the app inside of the webview so that when the user goes to the webview they are still logged in. I tried using shared preferences to re-login on the webview but that isn't working. Im able to pass the shared preferences to it but it still tells me i'm not logged in on the website. Any help on this topic would be greatly appreciated. </p>
  
  <p>Here is my code:</p>
  
  <p>Connection class to create defaultHttpRequest that I will pass between all classes.</p>
  
  <pre><code>import java.io.IOException;
  
  import org.apache.http.HttpResponse;
  import org.apache.http.client.ClientProtocolException;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.entity.UrlEncodedFormEntity;
  import org.apache.http.client.methods.HttpPost;
  import org.apache.http.impl.client.DefaultHttpClient;
  
  public class Connection1 {
  
  
      public static HttpClient httpclient = new DefaultHttpClient();
      private static HttpPost httpPost;
  
      public Connection1(){
      }
  
      public HttpPost getHttpPost(){
          return httpPost;
      }
      public HttpResponse getResponse() throws ClientProtocolException, IOException{
          return httpclient.execute(httpPost);
      }
      public void setEntity(UrlEncodedFormEntity entity){
          httpPost.setEntity(entity);
      }
      public void setHttpPost(String script){
          httpPost = new HttpPost(script);
      }
  }
  </code></pre>
  
  <p>Webapp class that will display the website pages:</p>
  
  <pre><code>import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.util.ArrayList;
  import java.util.List;
  
  import org.apache.http.NameValuePair;
  import org.apache.http.client.ClientProtocolException;
  import org.apache.http.client.entity.UrlEncodedFormEntity;
  import org.apache.http.message.BasicNameValuePair;
  
  import android.app.Activity;
  import android.content.SharedPreferences;
  import android.os.Bundle;
  import android.webkit.WebView;
  import android.webkit.WebViewClient;
  
  public class WebApp extends Activity {
  
      public static final String PREFS_NAME = "myPrefsFile";
      private static final String PREFS_USERNAME = "username";
      private static final String PREFS_PASSWORD = "password";
  
      String username = "";
      String password = "";
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
      }
  
      @Override
      protected void onResume() {
          // TODO Auto-generated method stub
          super.onResume();
          setContentView(R.layout.webapp);
          SharedPreferences pref = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
          username = pref.getString(PREFS_USERNAME, null);
          password = pref.getString(PREFS_PASSWORD, null);
          System.out.println(username + "-" + password);
          postLoginData();
  
  
      }
  
      public void postLoginData() {
  
          // Create a new HttpClient and Post Header
          Connection1 connection = new Connection1();
          connection
                  .setHttpPost("script.php");
  
          try {
  
              List&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;(2);
              nameValuePairs.add(new BasicNameValuePair("username", username));
              nameValuePairs.add(new BasicNameValuePair("password", password));
              connection.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  
              String str = inputStreamToString(
                      connection.getResponse().getEntity().getContent())
                      .toString();
  
              if (str.toString().equalsIgnoreCase("success")) {
                  WebView webapp = (WebView) findViewById(R.id.webView1);  
                  webapp.loadUrl("URL");
                  webapp.setWebViewClient(new WebViewClient());
                  webapp.getSettings().setJavaScriptEnabled(true);
              }
          } catch (ClientProtocolException e) {
              e.printStackTrace();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
  
      private StringBuilder inputStreamToString(InputStream is) {
          String line = "";
          StringBuilder total = new StringBuilder();
          // Wrap a BufferedReader around the InputStream
          BufferedReader rd = new BufferedReader(new InputStreamReader(is));
          // Read response until the end
          try {
              while ((line = rd.readLine()) != null) {
                  total.append(line);
              }
          } catch (IOException e) {
              e.printStackTrace();
          }
          // Return full string
          return total;
      }
  }
  </code></pre>