2010-08-23 41 views
0

我想從php文件發佈一些值(例如布爾值)到我的Java Servlet。PHP將值發佈到java servlet

它基本上是一個通知系統,我試圖實現。功能是用戶發佈問題到網站(使用PHP構建),並且當他得到他的問題的答案時,我應該能夠從我的php文件傳遞一個布爾值給java servlet。

我使用這個工作PHP函數是

功能do_post_request($網址,$數據,$ optional_headers = NULL) {

 $params = array('http' => array(
       'method' => 'POST', 
       'content' => $data 
     )); 

      if ($optional_headers!== null) { 
      $params['http']['header'] = $optional_headers; 
       } 


      $ctx = stream_context_create($params); 

      $fp = fopen($url, 'rb', false, $ctx); 

      if (!$fp) { 
      **echo '<br>echo in if statement <br>';** 
      throw new Exception("Problem with $url, $php_errormsg"); 
      } 


      $response = @stream_get_contents($fp); 

      if ($response === false) { 
       throw new Exception("Problem reading data from $url, $php_errormsg"); 
        } 

      return $response; 
    } 

而且此方法始終呼應「呼應if語句「。這意味着fp的值爲空,這意味着我提供的URL是錯誤的。

但我提供的URL基本上是一個java servlet,我可以在我的Web瀏覽器中打開它。

所以任何人都可以幫助我做到這一點。

我會要求的提出任何PHP代碼修改的詳細解釋,因爲我是新來的php.Also請讓我櫃面知道我需要提供有關這個問題的額外信息

感謝

+0

查詢的網址檢查此,地方呼應它。這將確認它是否會到達您認爲正在進行的地方。 – 2010-08-23 03:59:41

+0

我回應了url.This證實了我,我得到正確的url – Barry 2010-08-24 16:49:01

回答

1

正如我指出的在評論中,我會首先嚐試回顯網址。爲此,請在fopen調用之前添加echo $url;。這將確認它是否獲得正確的網址。

如果不是,那麼您需要排除故障原因。

如果它正在獲取正確的url,則有可能您的php安裝未配置爲使用基於遠程(基於url的)調用fopen。你可以得到關於here的一些細節。如果是這樣的話,你只能在php.ini中修改它,這意味着如果你不在自己管理的盒子上,你的主機必須允許它。

注:我相信你可以通過尋找在由呼叫顯示的信息allow_url_fopenphpinfo();

+0

allow_url_fopen爲本地以及主人是ON。 因爲我使用http,所以提供了默認包裝器。如果我錯了,請更正我的錯誤。 那麼還有什麼我需要照顧的? – Barry 2010-08-24 17:01:12