我正在嘗試將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請求,我得到的輸出中爲「這是一個」。所以它連接到網址和所有內容,但發送數據時,它不起作用。請幫忙!謝謝。
哦!非常感謝你 !現在它工作正常。順便說一句,當我這樣做: in.readLine()它說,該方法已棄用DataOutputStream中,應替換爲我原來使用的BufferedReader線。那麼如何解決這個問題呢? 另外如何使用bufferedReader而不是DataOutputStream發送POST數據。非常感謝您的幫助 ! :) – aradhya 2012-01-15 12:43:05
你說得對。我添加了一個沒有廢棄方法的解決方案。至於發佈使用BufferedReader:我不認爲這是可能的(我可能是錯的,但畢竟它是一個讀者,而不是一個作家) – tim 2012-01-15 12:58:00