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