POSTデータをjavaからPHPページに送信しようとしています。しかし、それは動作していません。私はPHPページにエコーがうまく動作しますが、データを送信すると「未定義インデックス」 何が問題になりますか? これは私のJavaファイルです。javaを使用してPHPページにデータを送信する
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リクエストを送信する「これは」として、私は出力に含まを取得します。だから、それはURLに接続していますが、データを送信している間はすべて機能していません。助けてください!ありがとうございました。
ああ!どうもありがとうございました !今はうまくいく。 Btw私が行うとき: in.readLine()メソッドは、DataOutputStreamで廃止され、元々使用していたBufferedReader行に置き換える必要があります。だからこの問題を解決する方法は? また、DataOutputStreamではなくbufferedReaderを使用してPOSTデータを送信する方法もあります。あなたの助けが大いにありがとう! :) – aradhya
あなたは正しいです。私は廃止されたメソッドのないソリューションを追加しました。 BufferedReaderを使った投稿について:私はそれが可能だとは思わない(私は間違っている可能性がありますが、結局それはライターではなくReaderです) – tim