android - 登录 API 服务器失败

标签 android api http httpclient

我在使用我的代码登录 API 服务器时遇到问题, 在 API 文档中,我应该使用用户名、密码和 key 登录以使用 API。

登录网址为:http://xxx.xxx.xxx.xxx/api/Session/login?context=api&skey=2354e5rufygbiuk7bikuyhboulygh&USR=zzzz&PWD=xxx

当我使用 httpURLConnection 执行上面的 url 时,服务器给出“OK”响应,这意味着登录成功。

但是当我尝试检查我是否登录时使用:http://xxx.xxx.xxx.xxx/api/Session/isLogin?context=api ,服务器给出“FALSE”响应,这意味着我还没有登录,所以我不能使用 API。

当我尝试使用我的 android 应用程序进行连接时,它就发生了,但是当我尝试通过网络浏览器登录时,登录成功并且当我检查它时成功。

谁能帮帮我?

最佳答案

尝试通过getHeaderField从第一个请求获取 session 信息,并通过正则表达式获取 session 信息。

    String session_value=getHeaderField("Set-Cookie");

并将 session 信息用于下一个请求。

    URL url = new URL(link);
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    //fetch session
    session_value = urlConnection.getHeaderField("Set-Cookie");
    String[] sessionId = session_value.split(";");
    //set session to do more operation
    urlConnection.setRequestProperty("Cookie", sessionId[0])

希望它对你有用。

关于android - 登录 API 服务器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13842451/

相关文章:

android - 背景音乐长度和速度

javascript - 如何使用for循环在div中显示restful api获取的数据?

javascript - 现场示例 Spotify WEB 应用程序

javascript - 将 Javascript 变量从 html 提取/解码到 python 中

android - 在 API11 中处理 OnPreferenceChangeListener

java - 如何在向下滚动时固定标题位置

android - 定位服务的 `getLastKnownLocation()` 是否检查手机当前的 GPS 位置?

java - 具有 DVD_START_DT 和 DVD_END_DT 覆盖的彭博 API DVD_HIST 请求

javascript - 从 html 页面提供 javascript 文件

node.js - Webduino 从 curl 而不是从 Node 接收 POST 参数