🍅 作者简介:敖 广,CSDN2020博客之星亚军🏆、博客专家💪、个人成长专家✌
🍅 多年工作总结:Java学习路线总结,逆袭Java架构师
🍅 技术交流:定期更新Java硬核干货,不定期送书活动、助你实现技术飞跃
🍅 关注公众号【程序技术圈】,回复 面试题 ,获取《108道Java经典面试题总结(附答案)》pdf,复习方便,面试利器!
移动端在向服务器请求登录并且登录成功的时候,服务器的订单接口需要获取当前登录的Session,才能够以当前用户身份下单,与web端不同,移动端的Session不会自动保存到web端,每次请求都认为是一次新的请求。因此在移动端只要获取到当前登录的Session并且记录下来,在之后的请求中将该Session作为请求头就能够在之后的请求中保持同一个会话(好像Session是有时效的)。
public class User{ public static String mysession=null; }
//定义一个静态变量用来保存Session
URL url1 = new URL("接口地址"); // 2.建立与目标资源的Http通信连接 HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection(); if(User.mysession!=null) { urlConnection.setRequestProperty("cookie",User.mysession); }
//主要代码,判断Session是否为空,不为空则把Session作为请求头
urlConnection.setRequestMethod("POST"); urlConnection.setDoInput(true); urlConnection.setDoOutput(true);
String cookieValue = urlConnection.getHeaderField("set-cookie"); if(cookieValue!=null) { Bean.mysession = cookieValue.substring(0,cookieValue.indexOf(";")); }
//主要代码,获取本次请求的Session,存入mysession
// 5.发起请求得到响应的数据 InputStream is = urlConnection.getInputStream() ; // 6.封装成字符流读取最终请求回来的数据 BufferedReader br = new BufferedReader(new InputStreamReader(is)); // 一行一行的读取信息 String line = null ; StringBuilder sb = new StringBuilder(); while ((line = br.readLine())!=null){ sb.append(line); } //关闭连接 urlConnection.disconnect();
//返回数据 return sb.toString();
保存Session后,在之后的请求中除非更新Session,否则都在同一个Session会话中(Session可用来标识当前的操作对象)。
🍅 作者简介:敖 广,CSDN2020博客之星亚军🏆、博客专家💪、个人成长专家✌
🍅 多年工作总结:Java学习路线总结,逆袭Java架构师
🍅 技术交流:定期更新Java硬核干货,不定期送书活动、助你实现技术飞跃
🍅 关注公众号【程序技术圈】,回复 面试题 ,获取《108道Java经典面试题总结(附答案)》pdf,复习方便,面试利器!