2012-06-04 3 views
0

Я разрабатываю приложение, которое отправляет запросы в SAP, я боролся, чтобы поддерживать соединение в то время как я в приложении.Поддерживать связь между действиями с использованием DefaultHttpClient

Я получил три вида деятельности: главный, соединения и список.

Когда я запускаю приложение, он переходит к основным, после того как я подключился к соединению, чтобы установить соединение между SAP и устройством, и оно успешно соединяется.

Проблема, что у меня есть, когда я нажимаю кнопку возврата к основной и перейти к список активности, я не могу получить данные, потому что я потерял DefaultHttpClient, что имел связь.

public String logInToSAP(String PIP, int PPort, String PSchema, String PUser, String PPassword) { 
    String result = ""; 

    //  HttpHost targetHost = new HttpHost(PIP, PPort, PSchema); 
    HttpHost targetHost = new HttpHost(PIP, PPort, PSchema); 

    //   DefaultHttpClient httpclient = new DefaultHttpClient(); 
    httpclient.getCredentialsProvider().setCredentials(new AuthScope(targetHost.getHostName(), 
      targetHost.getPort()), new UsernamePasswordCredentials(PUser, PPassword)); 

    // Create AuthCache instance 
    AuthCache authCache = new BasicAuthCache(); 

    // Generate BASIC scheme object and add it to the local auth cache 
    BasicScheme basicAuth = new BasicScheme(); 
    authCache.put(targetHost, basicAuth); 

    // Add AuthCache to the execution context 
    BasicHttpContext localcontext = new BasicHttpContext(); 
    localcontext.setAttribute(ClientContext.AUTH_SCHEME_PREF, authCache); 

    HttpGet request = new HttpGet("/sap/z_conn"); 

    ResponseHandler<String> handler = new BasicResponseHandler(); 
    try { 
     result = httpclient.execute(targetHost, request, handler); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
     Toast.makeText(this, "Wrong Connection Parameters", Toast.LENGTH_SHORT).show();   
     result = "Wrong Connection Parameters"; 
    } catch (IOException e) { 
     e.printStackTrace();    
     Toast.makeText(this, "IOException", Toast.LENGTH_SHORT).show(); 
     result = "IOException"; 
    } 
    return result; 
} 
+0

Возможно, сохраняющийся на (сессию) куки, установленный SAP будет достаточно? Одноэлемент [BasicCookieStore] (http://developer.android.com/reference/org/apache/http/impl/client/BasicCookieStore.html) в памяти должен только для этого. – Jens

ответ

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