根据您需要的交互的复杂性或级别,这可以通过简单的方式来完成,例如向 Web 服务器上的特定页面发出 GET 请求,并在查询字符串中提供必要的信息(或者您可以使用 POST)。
// Construct the query string with the proper username and password
URL url = new URL("http://www.yoursite.com/verify.php?username=happy&password=pants");
try (BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()))) {
StringBuilder sb = new StringBuilder();
for (String s; (s = in.readLine()) != null;)
sb.append(s);
switch (sb.toString().trim()) {
case "welcome":
JOptionPane.showMessageDialog(null, "Welcome!");
// Proceed to game
break;
case "shut up and pay me":
JOptionPane.showMessageDialog(null, "You owe me money first!");
break;
case "no such user":
JOptionPane.showMessageDialog(null, "Go away!");
// Recursively delete all their files...
break;
}
}
verify.php 有一些 PHP 代码,看起来像
// Set up database stuff...
// Query the database
$query = sprintf("SELECT * FROM friends users WHERE username='%s' AND password='%s'",
mysqli_real_escape_string($_GET["username"]),
mysqli_real_escape_string($_GET["password"]));
if (($result = mysqli_query($query)) && ($row = mysqli_fetch_assoc($result))) {
if ($row["license"] == "premium") {
echo "welcome";
} else {
echo "shut up and pay me";
}
} else {
echo "no such user";
}
但这只是您可以做什么的一个非常基本的示例,不应逐字逐句地遵循。您可能不应该通过 URL 的查询字符串传递这些值(这里可能更喜欢 POST 而不是 GET),最重要的是,您也不应该以纯文本形式存储或传递密码(即,首先对其进行哈希处理)使用MD5、 SHA1 或您选择的其他哈希)。我这样做只是为了简单。
对于更复杂的事情,您可能需要您已经获得的其他方法之一,例如使用sockets、web services等。
如果您想了解有关在 Java 中使用 URL 的更多信息,可以在此处找到。或者,如果您想了解有关 PHP 的 Mysqli 的更多信息,您可以在此处获取,或者替换您自己选择的包,例如 PEAR。