[英]Java Applet's URLConnection to PHP has no effect
我已经研究了Oracle文档和示例,但仍然无法正常工作。
我有一个Java Applet,它只是尝试使用URLConnection和OutputStreamWriter通过POST将文本字段发送到PHP脚本。 Java方面似乎工作正常,没有引发异常,但是PHP在我的页面上未显示任何输出。 我是PHP新手,因此请耐心等待。
这是相关的Java部分:
try {
URL url = new URL("myphpfile.php");
URLConnection con = url.openConnection();
con.setDoOutput(true);
out = new OutputStreamWriter(con.getOutputStream());
String outstring = "field1=" + field1 + "&field2=" + field2;
out.write(outstring);
out.close();
}
catch (Exception e) {
System.out.println("HTTPConnection error: " + e);
return;
}
这是相关的PHP代码:
<?php
$field1= $_POST['field1'];
$field2= $_POST['field2'];
print "<table><tr><th>Column1</th><th>Column2</th></tr><tr><td>" .
$field1 . "</td><td>" . $field2 . "</td></tr></table>";
?>
我所看到的只是表标题Column1和Column2(让我们将这些名称保持通用性以进行测试)。 我究竟做错了什么? 我需要告诉我的PHP脚本检查Java代码何时写入吗?
不使用$ _POST,不使用$ _REQUEST或$ _GET
在PHP脚本中的哪里设置$ field1和$ field2?
试试URL url = new URL("myphpfile.php?field1=" + field1 + "&field2=" + field2);
好吧,我觉得我已经尝试了所有可以用PHP尝试的方法,所以我最终选择了JSObject 。 现在,这很容易。
工作的Java代码:
JSObject window = JSObject.getWindow(this);
// invoke JavaScript function
String result = "<table><tr><th>Column1</th><th>Column2</th></tr><tr><td>"
+ field1 + "</td><td>" + field2 + "</td></tr></table>";
window.call("writeResult", new Object[] {result});
相关的工作Javascript:
function writeResult(result) {
var resultElem =
document.getElementById("anHTMLtagID");
resultElem.innerHTML = result;
}
从这里,我什至可以通过Ajax将Javascript的结果发送到PHP,以执行与数据库相关的操作。 好极了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.