在android中维护会话(应用程序在服务器端保持身份验证)

2024-01-16

我正在android中构建一个登录应用程序,其中我点击一个url(带有用户名和密码),直到该部分它工作正常,但之后每当我点击一个url(一旦用户通过身份验证),它什么都不返回(即错误消息,例如请先登录)。然而,它在非常相似的 iPhone 应用程序和浏览器上运行良好。

我发现这是 phpSessionId 的错误(即会话被销毁以供进一步请求),如果我们希望我们的 Android 应用程序在服务器端保持身份验证,我们需要在第一次连接后获取该 id,然后将其发送到我们所有后续请求的标头。

但问题是我无法从第一个连接的标头获取 sessionId 并与标头一起发送进一步的请求。

请给我一些代码或链接以正确完成任务。 谢谢。


最后我解决了这个问题Android 中的会话处理。 Android 无法处理会话本身(简单的浏览器可以),因此我们必须显式处理它。 我稍微改变了http连接的代码。 创建了一个实例默认HttpClient在建立连接时的第一个活动中。

public static DefaultHttpClient httpClient;

第一次连接时,我做了以下操作:

URL url=new URL(urlToHit);
LoginScreen.httpClient = new DefaultHttpClient(); //LoginScreen is the name of the current Activity

HttpPost httppost = new HttpPost(url.toString());
HttpResponse response = LoginScreen.httpClient.execute(httppost); 

xr.parse(new InputSource(url.openStream())); //SAX parsing

现在对于所有进一步的连接我使用相同的http客户端例如在下一个活动中:

URL url=new URL(urlToHit);

HttpPost httppost = new HttpPost(url.toString());
HttpResponse response = LoginScreen.httpClient.execute(httppost); 

// Log.v("response code",""+response.getStatusLine().getStatusCode());

// Get hold of the response entity
HttpEntity entity = response.getEntity();

InputStream instream = null;

if (entity != null) {
    instream = entity.getContent();
}
xr.parse(new InputSource(instream)); //SAX parsing

希望这也能帮助大家解决Android 中的会话问题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中维护会话(应用程序在服务器端保持身份验证) 的相关文章

随机推荐

  • 如何在鼠标悬停时在 div 元素周围创建边框

    我想在鼠标悬停在元素上方时在元素周围创建边框 我正在尝试使用 body mouseover function e var element document elementFromPoint e clientX e clientY var t
  • 如何通过拖动 Widget 的角来调整 Widget 上的 QTableWidget 大小

    我想调整大小QTableWidget通过拖动右下角 如下面的屏幕截图所示 这个怎么做 这是我的代码 code from PySide QtGui import QApplication QWidget QTableWidget week m
  • 良好的 Java 属性文件编辑器

    我从事一个开源 Java 项目 我们有很多包含可本地化消息资源的资源属性文件 这些文件由志愿者翻译成 20 多种语言 而我是一名主要编辑代码的开发人员 在 Java 中 不同语言环境的资源文件通过命名约定分组在一起 例如 如果默认 通常是英
  • Clickhouse数据导入

    我在Clickhouse中创建了一个表 CREATE TABLE stock plant Int32 code Int32 service level Float32 qty Int32 ENGINE Log 有一个数据文件 head n
  • 更新不在 Google Play 上的内部 Android 应用程序?

    我正在开发一个内部应用程序 但它不会出现在 Google Play 上 我该如何更新此应用程序 非常感谢大家 向人们发送新的 apk 或者让它检测何时有新版本 并告诉他们单击链接进行下载
  • C#:实现格式良好的时间字符串的最佳方法?

    我写这个问题是因为我正在寻求最好的方法来做到这一点 我的程序中有很多这样的内容 我想创建一种方法将包含计时器秒数的 Int32 转换为格式良好的字符串 例如 如果我的计时器 int 为 at 可以说一个随机数 例如 16429 这将是 4
  • 如何在Java代码中使用Scala注解

    有什么方法可以使用 Scala 中定义的注释 以便它们可以与 Java 代码一起使用吗 我有一个带有一些注释的库 我想在 Java 中使用 引用自 scaladocs 注释的基类 直接扩展此类的注释不会保留在类文件中 启用存储 类文件的 S
  • 对“dlsym”和“dlopen”的未定义引用

    我正在使用arm linux gnueabi g 版本4 7 3进行编译 我在以下位置安装了 arm linux gnueabi 库 usr arm linux gnueabi lib 它包含libdl a libdl so libdl s
  • DataGridView 选择更改事件并从数据库中删除选定的行

    我的表单上有一个单选按钮 一个网格视图和一个按钮 这是我的datagridview selection changed代码示例 private void DataGridView1 SelectionChanged object sende
  • PerformSelectorOnMainThread中的WaitUntilDOne有什么意义?

    有什么意义WaitUntilDOne in performSelectorOnMainThread 通过什么方式YES or NO set to WaitUntilDoneApp上可以有吗 UPDATE 我的问题应该是 它们在什么情况下会产
  • 分层数据模板中的命令绑定

    我的应用程序中有菜单 我使用分层数据模板将其可视化
  • 使用 onBlur 验证输入类型=文件

    我可以使用 onBlur 来验证 type text 或 textarea 输入 但是我无法让同样的方法适用于 type file 这有效
  • 亚马逊 SimpleDB 与亚马逊 DynamoDB

    我有一些基本的了解亚马逊简单数据库 http aws amazon com simpledb 是 但根据亚马逊动态数据库 http aws amazon com dynamodb 描述似乎几乎相同 aNoSQL 键值存储 http en w
  • Hackage 包“双重转换”中未定义的符号

    我正在尝试建立double conversion来自 Hackage 的包 它构建正常 但 ghci 无法加载它 投诉内容是 Loading package double conversion 0 2 0 0 linking
  • Seaborn KDEPlot - 数据变化不够?

    我有一个包含 900 行的数据框 我正在尝试为某些列绘制 KDE 图 在某些列中 大多数值都是相同的最小值 当我包含太多最小值时 KDEPlot 会突然停止显示最小值 例如 以下包含 600 个值 其中 450 个是最小值 并且绘图看起来不
  • 如何在 python 中的 sklearn 中通过交叉验证执行 SMOTE

    我有一个高度不平衡的数据集 想要执行 SMOTE 来平衡数据集并执行交叉验证来测量准确性 然而 大多数现有教程仅使用单个training and testing迭代来执行 SMOTE 因此 我想知道使用交叉验证执行 SMOTE 的正确过程
  • 使用 team city 部署 ASP.NET 网站

    如何部署一个没有任何项目文件的网站项目 我们正在尝试使用 Team City 来自动化构建和部署 我能够成功构建该项目 但无法部署该网站 MsDeploy 支持通过以下方式部署网站contentPath提供者 msdeploy verb s
  • 从 Android 设备使用 PHP 连接到 MySQL 数据库

    我正在尝试使用 PHP 从 Android 设备连接到 MySQL 我正在关注这个教程 http blog sptechnolab com 2011 02 10 android android connecting to mysql usi
  • 较长的物体长度不是较短物体长度的倍数? [复制]

    这个问题在这里已经有答案了 我不明白为什么 R 会给我一个关于 较长对象长度不是较短对象长度的倍数 的警告 我有这个对象 它是通过对给出工作日中位数的 xts 系列进行聚合而生成的 u lt aggregate d list Ukedag
  • 在android中维护会话(应用程序在服务器端保持身份验证)

    我正在android中构建一个登录应用程序 其中我点击一个url 带有用户名和密码 直到该部分它工作正常 但之后每当我点击一个url 一旦用户通过身份验证 它什么都不返回 即错误消息 例如请先登录 然而 它在非常相似的 iPhone 应用程