用java将数据发送到php页面
我试图将POST数据从java发送到PHP页面。但是它不起作用。无论我在php页面中回显什么都可以正常工作,但当我发送数据时,它会给出-“未定义索引” 有什么问题吗? 这是我的java文件用java将数据发送到php页面,java,php,Java,Php,我试图将POST数据从java发送到PHP页面。但是它不起作用。无论我在php页面中回显什么都可以正常工作,但当我发送数据时,它会给出-“未定义索引” 有什么问题吗? 这是我的java文件 import java.net.*; import java.io.*; class Main { public static void main(String args[]) throws IOException { URL url = new URL("http://localhost/CD/
import java.net.*;
import java.io.*;
class Main {
public static void main(String args[]) throws IOException {
URL url = new URL("http://localhost/CD/user/test");
String result = "";
String data = "fName=" + URLEncoder.encode("Atli", "UTF-8");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
try {
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
// Send the POST data
DataOutputStream dataOut = new DataOutputStream(
connection.getOutputStream());
dataOut.writeBytes(data);
dataOut.flush();
dataOut.close();
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream()));
String g;
while ((g = in.readLine()) != null) {
result += g;
}
in.close();
} finally {
connection.disconnect();
System.out.println(result);
}
}
}
这是我的php控制器:
public function test(){
$test=$_POST['fName'];
$all="This is a ";
$all=$all." ".$test;
echo $all;
}
当我刚刚发送一个url请求时,我得到的输出是“This is a”。因此,它正在连接url和所有内容,但在发送数据时,它不起作用。请帮忙!谢谢。您明确指定使用Java中的
GET
发送数据,但您正在阅读PHP中的POST
数据
Java(16):connection.setRequestMethod(“GET”)代码>
PHP(3):$test=$\u POST['fName']代码>
您需要更改其中一个,因此它们都使用POST
或GET
您使用不同的流进行发布和获取。
你的邮政编码很好用
替换:
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream())); // different stream
与
它应该很好用
//编辑:此处没有任何不推荐的方法:
BufferedReader in = null;
try {
String line;
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = in.readLine()) != null) {
result += line;
}
} finally {
if (in != null) {
in.close();
}
}
哦,对不起,我是用GET试的。它不工作的任何方式-得到或张贴。哦!非常感谢你!现在很好用。顺便说一句,当我这样做时:in.readLine()表示该方法在DataOutputStream中已被弃用,应替换为我最初使用的BufferedReader行。那么如何解决这个问题呢?还有如何使用bufferedReader而不是DataOutputStream发送POST数据。非常感谢您的帮助!:)你是对的。我添加了一个没有弃用方法的解决方案。至于使用BufferedReader发帖:我认为这是不可能的(我可能错了,但毕竟它是一个读者,而不是一个作者)
BufferedReader in = null;
try {
String line;
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = in.readLine()) != null) {
result += line;
}
} finally {
if (in != null) {
in.close();
}
}