我创建了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