У меня есть другое приложение, встроенное в iOS, и когда пользователь входит в приложение, сервер регистрирует их на этом сеансе. В приложении iOS сеанс поддерживается до тех пор, пока обычные сеансы и все запросы из приложения видят, что человек все еще зарегистрирован.Android: сохранение сеанса на удаленном сервере между действиями
Я предположил, что это будет то же самое с Android-приложением, но после входа в систему я переключаюсь на следующее действие, затем отправьте запрос на сервер, чтобы заполнить страницу. Результат, о котором я возвращаюсь, говорит, что пользователь не вошел в систему.
Есть ли разница здесь, что я не понимаю, что не поддерживает мою сессию на сервере вживую?
У меня есть базовый класс, который охватывает все мои действия, и внутри базового класса у меня есть этот защищенный класс. Я использую его для отправки всех запросов.
protected class API extends AsyncTask <Void, Void, String>
{
public String RequestName;
public String RequestType;
public String RequestUrl;
public List<NameValuePair> RequestParameters;
public API(String Name, String Type, String Url, List<NameValuePair> params)
{
RequestName = Name;
RequestType = Type;
RequestUrl = Url;
RequestParameters = params;
}
protected String getASCIIContentFromEntity(HttpEntity entity) throws IllegalStateException, IOException
{
InputStream in = entity.getContent();
StringBuffer out = new StringBuffer();
int n = 1;
while (n>0)
{
byte[] b = new byte[4096];
n = in.read(b);
if (n>0)
out.append(new String(b, 0, n));
}
return out.toString();
}
@Override
protected String doInBackground(Void... params)
{
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
String text = null;
if(RequestType == "post")
{
HttpPost p = new HttpPost("http://www.ehrx.com/api/" + RequestUrl);
try
{
p.setEntity(new UrlEncodedFormEntity(RequestParameters));
HttpResponse response = httpClient.execute(p, localContext);
HttpEntity entity = response.getEntity();
text = getASCIIContentFromEntity(entity);
}
catch (Exception e)
{
return e.getLocalizedMessage();
}
}
else
{
HttpGet httpGet = new HttpGet("http://www.ehrx.com/api/" + RequestUrl);
try
{
HttpResponse response = httpClient.execute(httpGet, localContext);
HttpEntity entity = response.getEntity();
text = getASCIIContentFromEntity(entity);
}
catch (Exception e)
{
return e.getLocalizedMessage();
}
}
return text;
}
protected void onPostExecute(String results)
{
HandleResult(results, RequestName);
}
}
Я обновил свой вопрос более подробно. – Jhorra
Я обновил свой ответ более подробно. – digitaljoel
Отлично, спасибо. – Jhorra