正如標題所說...我曾嘗試使用下面的代碼執行PHP腳本時用戶點擊一個按鈕,在我的Java Swing應用程序:如何從Java代碼調用PHP腳本?
URL url = new URL("http://www.mywebsite.com/my_script.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
但沒有任何反應...... 有什麼錯了?
正如標題所說...我曾嘗試使用下面的代碼執行PHP腳本時用戶點擊一個按鈕,在我的Java Swing應用程序:如何從Java代碼調用PHP腳本?
URL url = new URL("http://www.mywebsite.com/my_script.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
但沒有任何反應...... 有什麼錯了?
我想你錯過了接下來的步驟是這樣的:
InputStream is = conn.getInputStream();
HttpURLConnection
基本上只爲了做你需要做的是這樣調用getInputStream()
或更好的東西打開插座上connect
getResponseCode()
URL url = new URL("http://google.com/");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
InputStream is = conn.getInputStream();
// do something with the data here
}else{
InputStream err = conn.getErrorStream();
// err may have useful information.. but could be null see javadocs for more information
}
謝謝Gareth ...現在工作正常。我首先想到connect()會自動調用url並直接執行,因爲我使用的是HttpURLConnection而不是URLConnection。 – Brad 2010-10-26 12:33:38
不用擔心。正如你可以從我的第二個例子看到的,connect()的調用實際上是可選的。說實話,如果你正在做其他最簡單的事情,你可能想考慮使用Apache的HttpClient – 2010-10-26 12:35:56
嗨,我想問一下InputStream。爲什麼要運行php腳本我們需要InputStream而不是OutputStream? – aLIEz 2016-03-24 11:36:26
final URL url = new URL("http://domain.com/script.php");
final InputStream inputStream = new InputStreamReader(url);
final BufferedReader reader = new BufferedReader(inputStream).openStream();
String line, response = "";
while ((line = reader.readLine()) != null)
{
response = response + "\r" + line;
}
reader.close();
「響應」,將持有的頁面的文本。你可能想玩弄回車(取決於操作系統,請嘗試\ n,\ r或兩者的組合)。
希望這會有所幫助。
這不完全是「從Java調用PHP」。這只是「發出HTTP請求」。該HTTP請求的另一端可能是PHP ...或者它可能是靜態內容,Ruby on Rails或更多的Java。從代碼的角度來看,它只是一個HTTP請求。所以Gareth Davis在下面是正確的......一旦你打開了這個HTTP連接,你必須調用另一個方法來發送你的HTTP請求並獲得一個HTTP響應。即使你不關心做出任何迴應,情況也是如此。 – 2010-10-26 12:27:43
啊哈......得到了史蒂夫。 – Brad 2010-10-26 12:57:50