我正在使用以下代码从 URL 读取内容:
public static String getPageContent(URL url) throws IOException {
   InputStream in = url.openStream();
   StringBuffer sb = new StringBuffer();
   byte[] buffer = new byte[256];
   while (true) {
      int byteRead = in.read(buffer);
      if (byteRead == -1) {
         break;
      }
      for (int i = 0; i < byteRead; i++) {
         sb.append((char) buffer[i]);
      }
   }
   return sb.toString();
}
然后我这样称呼它:
public static void main(String[] as) {
   try {
      URL u = new URL("http", "localhost", "/sessiontest.php");
      System.out.println(getPageContent(u));
      System.err.println(getPageContent(u));
   } catch (Exception e) {
      e.printStackTrace();
   }
}
我的 sessiontest.php 包含:
<?php
session_start();
if (isset($_SESSION['asd'])) {
   echo "set";
   unset($_SESSION['asd']);
} else {
   echo "not set";
   $_SESSION["asd"]="asdasdajklhlòjkl";
}
?>
此代码打印出set何时$_SESSION['asd']设置,然后not set如果未设置
多次调用我的网址时,第一次输出“未设置”,第二次输出“设置”,第三次输出“未设置”,以此类推。
问题是我的代码在同一个页面上调用了两次,我总是收到“未设置”作为 sessiontest.php 的输出,而如果我从任何浏览器访问我的页面两次,我会看到“未设置”然后“放”。
似乎 php 将我的所有连接作为不同的会话处理,为什么?