Java小程序&x27;URL与PHP的连接无效
我已经研究了Oracle文档和示例,但仍然无法实现这一点 我有一个Java小程序,它只是尝试使用URLConnection和OutputStreamWriter通过POST将文本字段发送到PHP脚本。Java端似乎工作正常,没有抛出异常,但PHP在我的页面上没有显示任何输出。我是一个PHP noob,所以请容忍我的这一部分 以下是相关的Java部分:Java小程序&x27;URL与PHP的连接无效,java,php,applet,httprequest,urlconnection,Java,Php,Applet,Httprequest,Urlconnection,我已经研究了Oracle文档和示例,但仍然无法实现这一点 我有一个Java小程序,它只是尝试使用URLConnection和OutputStreamWriter通过POST将文本字段发送到PHP脚本。Java端似乎工作正常,没有抛出异常,但PHP在我的页面上没有显示任何输出。我是一个PHP noob,所以请容忍我的这一部分 以下是相关的Java部分: try { URL url = new URL("myphpfile.php"); URL
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代码何时写入吗?不要使用$\u POST,使用$\u REQUEST或$\u GET 在php脚本中,在哪里设置$field1和$field2
尝试
URL URL=newurl(“myphpfile.php?field1=“+field1+”&field2=“+field2”)代码>好吧,我觉得我已经尝试了所有可以用PHP尝试的东西,所以我最终选择了。现在这很容易
工作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});
从这里,我甚至可以通过Ajax将结果从Javascript发送到PHP,以执行与数据库相关的操作。耶 如果你不发送邮件请求,请查看“谢谢”。读完这篇文章后,唯一的区别似乎是我需要明确地设置“con.setRequestMethod(“POST”);”对吗?不幸的是,这个问题上的任何技巧都对我没有任何影响。谢谢,我会尝试一下。对不起,我的变量名不正确。我已经编辑过了!获取/请求也不起作用。我想知道我如何将php输出写入小程序所在的页面是否有问题?它似乎根本没有用文本更新页面。php代码通过iframe在我的html页面中引用…有更好的方法吗?是的,我已经尝试通过URL传递字段,但php仍然没有找到它。我决定使用Java=>Javascript=>PHP来代替它。
function writeResult(result) {
var resultElem =
document.getElementById("anHTMLtagID");
resultElem.innerHTML = result;
}