我正在使用以下代码从 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 将我的所有连接作为不同的会话处理,为什么?