我創建了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);
感謝您的幫助。他們來說,我的意思是來自網絡服務。問題是我爲我的客戶創建了這些Web服務。他的網站已經運行在蛋糕php中,而且我必須在同一臺服務器上安裝Web服務。在開始時,他告訴我,該網站是在PHP中。但是幾天他解釋說這是個蛋糕。我已經創建了二十多個Web服務。很難將它們寫入cakePhp。因爲我對CakePhp零知識。這就是我尋找解決方案的原因。那麼有沒有辦法在基於cakePhp的Web服務器上安裝用簡單的PHP編寫的Web服務? 謝謝 – Mas 2010-07-09 17:14:43
更新了我對你評論的回答。 – mikegreenberg 2010-07-09 18:11:18
感謝您的幫助。我有另一個想法。是否有可能在我的客戶端的服務器上安裝另一個具有不同路徑和端口的Web服務器。然後在新的Web服務器中安裝我的PHP Web服務。當然基於簡單的PHP? – Mas 2010-07-10 06:52:17