2010-07-09 68 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

相关问题