2010-07-09 60 views
0

我創建了PHP Web服務,它從MySQL讀取數據並返回到我的iPhone應用程序。以前我在很多應用程序中成功地使用了相同的代碼。我安裝Web服務的Web服務器是基於CakePHP的,而我的Web服務是用簡單的PHP編寫的。如何從iPhone中安裝在CakePHP中的PHP Web服務中獲取數據?

我無法從iPhone應用程序中獲取數據。 Web服務在localhost上運行良好,但是在服務器上安裝它們時,我正在接收二進制數據而不是XML文件。我更改了編碼和內容類型標記。執行此Web服務會返回以下故障代碼。

錯誤味精解析:從字符集HTTP ' Content-Type的US-ASCII '不匹配的XML聲明編碼' UTF-8 '

因此,任何人能幫助我嗎?我是否需要在CakePHP中重寫所有Web服務或者簡單的PHP Web服務可以工作?這是我的一個Web服務的代碼。

<?php 
include('vp-config.php'); 
// Pull in the NuSOAP code 
require_once('lib/nusoap.php'); 

define("PATH_DIR",str_replace("\\","/",dirname(__FILE__))."/"); 

$server = new soap_server; 

$server->register('getAllNews'); 
function getAllNews($page) { 

$conn = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD); 
mysql_select_db(DB_NAME, $conn) or die(mysql_error()); 

$q = "SELECT 
`website_contents`.`id`, 
`website_contents` .`website_top_category_id`, 
`website_contents` .`created`, 
`website_contents` .`short_description` 
FROM `website_contents` 
WHERE `website_contents`.`website_content_type_id` = 2 
AND `website_contents` .`short_description` IS NOT NULL 
ORDER BY id DESC LIMIT " . $page ." , 30"; 
$rs = mysql_query($q); 

while($r = mysql_fetch_array($rs)){ 
     $items[] = array('id'=>$r['id'],       
     'website_top_category_id'=>$r['website_top_category_id'], 
     'created'=>$r['created'], 
     'short_description'=>$r['short_description'] 
    ); 
    } 
return $items; 

} 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$serve 

r->service($HTTP_RAW_POST_DATA); 

回答

0

CakePHP做了很多內容處理,以確保您需要儘可能地做一些工作。如果您只是試圖訪問一些簡單的數據,您可以將它放在CakePHP之外,並將它們保存爲單獨的腳本。在CakePHP中創建它們可能會使用大錘來掛圖片框(如果你有我的比喻)。

鑑於你在評論中的解釋,我建議將它們作爲庫導入到CakePHP中。您可以將您的web服務代碼作爲一組PHP文件(或者您組織它們),並根據所使用的Cake版本將其放入app /目錄中的相應文件夾中。從那裏,他們可以包含到CakePHP的其餘部分,而無需您知道客戶端實際使用的代碼。

在此處閱讀您的代碼將如何導入。請記住,顯著的變化已對這一進程版本1.2和1.3之間,另外,在以下的閱讀:

希望這有助於!

+0

感謝您的幫助。他們來說,我的意思是來自網絡服務。問題是我爲我的客戶創建了這些Web服務。他的網站已經運行在蛋糕php中,而且我必須在同一臺服務器上安裝Web服務。在開始時,他告訴我,該網站是在PHP中。但是幾天他解釋說這是個蛋糕。我已經創建了二十多個Web服務。很難將它們寫入cakePhp。因爲我對CakePhp零知識。這就是我尋找解決方案的原因。那麼有沒有辦法在基於cakePhp的Web服務器上安裝用簡單的PHP編寫的Web服務? 謝謝 – Mas 2010-07-09 17:14:43

+0

更新了我對你評論的回答。 – mikegreenberg 2010-07-09 18:11:18

+0

感謝您的幫助。我有另一個想法。是否有可能在我的客戶端的服務器上安裝另一個具有不同路徑和端口的Web服務器。然後在新的Web服務器中安裝我的PHP Web服務。當然基於簡單的PHP? – Mas 2010-07-10 06:52:17

相關問題