怎样在同一个session中多次访问一个HTTPS server,该怎么处理
怎样在同一个session中多次访问一个HTTPS server
最近写一个集成测试:模拟玩家登陆游戏服务器的全过程,这些过程包括init,play等。
play请求需要init请求返回的transaction id作为postdata的内容。
url是像这样的:
https://www.abc.com:9001/init?playerId=3344 这个会返回一个初始transaction id
https://www.abc.com:9001/play?playerId=3344 这个要transaction id为内容的postdata
当我把init返回的transaction id放到play url的connection的postdata里面发送出去时
服务器认为transaction id和session不匹配。
大概的测试代码如下:
服务器返回的结果说session不对。
请问,怎样让这个两个URL在一个session中访问?
thanks in advance!
------解决方案--------------------
你需要一个能模拟浏览器管理Cookie的东西,建议用Apache 的 HttpClient 包,否则自己去实现这种东西会很浪费时间。
最近写一个集成测试:模拟玩家登陆游戏服务器的全过程,这些过程包括init,play等。
play请求需要init请求返回的transaction id作为postdata的内容。
url是像这样的:
https://www.abc.com:9001/init?playerId=3344 这个会返回一个初始transaction id
https://www.abc.com:9001/play?playerId=3344 这个要transaction id为内容的postdata
当我把init返回的transaction id放到play url的connection的postdata里面发送出去时
服务器认为transaction id和session不匹配。
大概的测试代码如下:
- Java code
//String https_url = "https://localhost:9001/init?playerId=3344"; String https_url = "https://localhost:9001/play?playerId=3344"; URL url; try { url = new URL(https_url); HttpsURLConnection con = (HttpsURLConnection)url.openConnection(); con.setDoInput(true); con.setDoOutput(true); con.setRequestMethod("POST"); OutputStreamWriter output = new OutputStreamWriter(con.getOutputStream()); String postData= "<TransactionId>" + "13256477107065" //这个id是https_url为注释掉的那个init URL返回的结果,我直接copy放在这里 + "</TransactionId>"; output.write(postData); output.flush(); System.out.println("****** Content of the URL ********"); BufferedReader br = new BufferedReader( new InputStreamReader(con.getInputStream())); String input; while ((input = br.readLine()) != null){ System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
服务器返回的结果说session不对。
请问,怎样让这个两个URL在一个session中访问?
thanks in advance!
------解决方案--------------------
你需要一个能模拟浏览器管理Cookie的东西,建议用Apache 的 HttpClient 包,否则自己去实现这种东西会很浪费时间。