移动端在向服务器请求登录并且登录成功的时候,服务器的订单接口需要获取当前登录的Session,才能够以当前用户身份下单,与web端不同,移动端的Session不会自动保存到web端,每次请求都认为是一次新的请求。因此在移动端只要获取到当前登录的Session并且记录下来,在之后的请求中将该Session作为请求头就能够在之后的请求中保持同一个会话(好像Session是有时效的)。
public class User{
//定义一个静态变量用来保存Session
public static String mysession=null;
}
URL url1 = new URL("接口地址");
// 2.建立与目标资源的Http通信连接
HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
//主要代码,判断Session是否为空,不为空则把Session作为请求头
if(User.mysession!=null)
{
urlConnection.setRequestProperty("cookie",User.mysession);
}
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(";"));
}
// 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();