在我的Android应用程序中,每个活动都填充了来自网络上某处的xml文件的数据.提供这些文件的网站有一个登录机制,可以使用cookie.
我知道如何向登录页面发出HTTP请求并接收cookie.我不知道的是,我如何存储它以在其他活动中重复使用它以及下次启动应用程序时.该cookie有效期为一年,因此我的应用程序的用户应该登录一次,然后再也不会再登录一年.
我怎么做?我搜索了很多,但要么我使用了错误的关键字,要么互联网上没有简单的解决方案.我希望这里有人可以帮助我.
最诚挚的问候和感谢,Jan Oliver
Android HttpClient是否具有cookie的自动管理功能?
我正在为一个Android项目做一个Get和Post方法,我需要将HttpClient 3.x"翻译"到HttpClient 4.x(由android使用).我的问题是,我不确定我做了什么,我找不到某些方法的"翻译"......
这是我做过的HttpClient 3.x和( - >)HttpClient 4.x"翻译"如果我找到它(只有那些问我问题的人):
HttpState state = new HttpState (); --> ?
HttpMethod method = null; --> HttpUriRequest httpUri = null;
method.abort(); --> httpUri.abort(); //httpUri is a HttpUriRequest
method.releaseConnection(); --> conn.disconnect(); //conn is a HttpURLConnection
state.clearCookies(); --> cookieStore.clear(); //cookieStore is a BasicCookieStore
HttpClient client = new HttpClient(); --> DefaultHttpClient client = new DefaultHttpClient();
client.getHttpConnectionManager().getParams().setConnectionTimeout(SOCKET_TIMEOUT) --> HttpConnectionParams.setConnectionTimeout(param, SOCKET_TIMEOUT);
client.setState(state); --> ?
client.getParams().setCookiePolicy(CookiePolicy.RFC_2109); --> HttpClientParams.setCookiePolicy(param, CookiePolicy.RFC_2109);
PostMethod post = (PostMethod) method; --> ?
post.setRequestHeader(...,...); --> conn.setRequestProperty(...,...);
post.setFollowRedirects(false); --> …Run Code Online (Sandbox Code Playgroud) 我正在android中建立一个登录应用程序,我正在点击一个url(用户名和密码),直到那部分它工作正常,但在那之后每当我点击一个url(一旦用户被认证),它什么都不返回(即错误消息,请先登录).但它在非常相似的iPhone应用程序和浏览器上工作正常.
我无法理解实际问题是什么.服务器端是否有任何问题(即在PHP编码中)或Android应用程序有问题.我们实际上不能责怪服务器端编码,因为它适用于相同的iphone应用程序和浏览器.
任何想法或帮助将受到高度赞赏.谢谢.
我有另一个在iOS中构建的应用程序,当用户登录到应用程序时,服务器会在该会话中登录它们.在iOS应用程序中,只要正常会话和来自应用程序的所有请求都看到仍然登录的人,会话就会保持活动状态.
我以为这会是与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); …Run Code Online (Sandbox Code Playgroud)