使用HttpPost的Android应用程序自定义web服务身份验证不适用



在我的应用程序中,我从需要身份验证的web服务(Yii PHP站点充当REST服务)中获取JSON格式的数据。

HttpPost post = new HttpPost(login_url);
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(name, pass);
post.addHeader(BasicScheme.authenticate(credentials, "UTF-8", false));

所有方法都由DefaultHttpClient的单个实例使用子类AsyncTask来执行。

身份验证工作正常,但从另一个URL获取数据会导致身份验证失败(内部服务格式的自定义消息)。

HttpPost post = new HttpPost(service_url);
client.execute(post);

为了弄清楚问题出在哪里,我检查了答案,并测试了其中一些。
我已经设法确定DefaultHttpClient实例中的CookieStorage实际上接收并保存了Cookie,在第一次调用后有两个,其中一个是PHPSESSID,它还没有过期。第二个似乎是一些编码的东西,它的截止日期似乎是创建时间,因为当我收到它时它已经过期了

如果你对这个问题有任何想法,请发表评论。我在寻找和尝试对其他人有用的东西时遇到了死胡同。

我的代码没有问题,但服务出现了错误。感谢您查看此问题,并感谢@Joël为我格式化此问题

最新更新