Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java将数据发送到php页面_Java_Php - Fatal编程技术网

用java将数据发送到php页面

用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/

我试图将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/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();
        }
    }