我在使用我的代码登录 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/