【发布时间】:2011-06-03 07:32:22
【问题描述】:
有一个用 PHP 编写的现有网站。最初只有网站存在,但现在正在构建一个 Android 应用程序,该应用程序将受益于重用一些 PHP 逻辑。
PHP 站点的结构使得有许多页面执行操作,在$_SESSION 中设置成功/错误信息,然后重定向到可视页面而不输出任何内容本身。比如有action_login.php:
页面接受用户名和密码(来自 GET 或 POST 变量),验证凭据,在 $_SESSION 中设置成功/失败消息,然后在成功时重定向到登录主页或在失败时返回登录屏幕.我们将这种行为称为“HTML 响应”。
Android 应用程序将需要调用同一个页面,但以某种方式告诉它它需要一个“XML 响应”。当页面检测到这一点时,它将以 XML 格式输出成功/错误消息,而不是将它们放入 $_SESSION 并且 不会 重定向。反正就是这个想法。这有助于防止重复代码。我不想让action_login.php 和action_login.xml.php 飘来飘去。
我了解到 Accept Header 不够可靠,无法使用(请参阅:Unacceptable Browser HTTP Accept Headers (Yes, You Safari and Internet Explorer))。我的后备解决方案是 POST xml=1 或使用 {url}?xml=1 进行 GET 请求。有没有更好的办法?
没有使用任何框架,这是纯 PHP。
【问题讨论】:
标签: php xml httprequest