我想将数据从 Java 发送到 PHP 页面。我用谷歌搜索了一下,但我发现的代码在这里不起作用,这是我使用过的代码的示例:
URL url = new URL("http://test.PHP");
URLConnection con = url.openConnection();
con.setDoOutput(true);
PrintStream ps = new PrintStream(con.getOutputStream());
ps.print("userid=12345");
ps.print("&password=Test");
con.getInputStream();
ps.close();
我需要做的是在页面上输入用户名和密码,然后让 PHP 页面接受输入并实际运行登录功能(模拟用户按下按钮)。
谢谢 乌尔里希
最佳答案
当我们尝试使用代码来模拟在浏览器中完成的操作时,Java 世界中最好的 API 之一是 HTTPClient ,它为您提供了许多功能,使您的代码充当浏览器前的用户(填写输入、单击、加载链接...)。 here is a good tutorial开始。
但是,如果您只想使用标准 Java API,而不使用任何第三方库,这里有几行我希望它会有所帮助:
首先尝试在 url 中指定域名和请求服务器时要调用的页面:
URL url = new URL("http://www.mydomaine.com/test.PHP");
如果网站在尝试访问时显示弹出的身份验证登录/密码窗口,请尝试使用此网址:
URL url = new URL("http://login:password@www.mydomaine.com/test.PHP");
如果它向您显示一个登录表单,并且您尝试通过发送您的登录名并通过就像您填写输入一样进行访问,那么第一件事就是识别当我们向以下地址发送请求时将使用的输入名称服务器,它可能是 login
和 password
或其他内容,要找到这些名称,请尝试从浏览器检查页面(查看页面的源代码或尝试检查HTML 元素)你会发现类似这样的东西:
<form action="login.php" method="POST">
<input type="text" name="my_login">
<input type="password" name="my_password">
</form>
假设名称是 my_login
和 my_password
,在这种情况下,您必须调用的页面是 login.php (这是操作的值表单)您的代码将是:
URL obj = new URL("http://www.mudomaine.com/login.php);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
String datas = "my_login=Administrator&my_password=s3cred0n3";
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(datas);
wr.flush();
wr.close();
如果您想管理服务器结果,可以通过调用con.getInputStream()
来处理结果。
但是我会再说一遍,如果您可以使用第三个库,那么就使用它,因为它简化了工作,并减少了代码中可能存在的错误。
关于java - 从 Java 将输入发送到 PHP 屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309099/