[英]Rest API Web Service - iOS
这是我第一次在iOS中使用网络服务。 REST是我的首选,我使用代码点火器来形成它。
我有我的控制器:
require APPPATH.'/libraries/REST_Controller.php';
class Sample extends REST_Controller
{
function example_get()
{
$this->load->helper('arh');
$this->load->model('users');
$users_array = array();
$users = $this->users->get_all_users();
foreach($users as $user){
$new_array = array(
'id'=>$user->id ,
'name'=>$user->name,
'age'=>$user->age,
);
array_push( $users_array, $new_array);
}
$data['users'] = $users_array;
if($data)
{
$this->response($data, 200);
}
}
function user_put()
{
$this->load->model('users');
$this->users->insertAUser();
$message = array('message' => 'ADDED!');
$this->response($message, 200);
}
}
,使用我的网络浏览器访问URL http://localhost:8888/restApi/index.php/sample/example/format/json
确实可以正常工作,并提供以下输出:
{"users":[{"id":"1","name":"Porcopio","age":"99"},{"id":"2","name":"Name1","age":"24"},{"id":"3","name":"Porcopio","age":"99"},{"id":"4","name":"Porcopio","age":"99"},{"id":"5","name":"Luna","age":"99"}]}
,这在我的应用程序中使用RestKit的RKRequest给了我很大的输出。
问题在于put方法。 这个网址:
http://localhost:8888/restApi/index.php/sample/user
总是给我这样的错误:
此XML文件似乎没有与之关联的任何样式信息。 文档树如下所示。
<xml>
<status/>
<error>Unknown method.</error>
这是我的用户模型
<?php
class Users extends CI_Model {
function __construct()
{
parent::__construct();
}
function get_all_users()
{
$this->load->database();
$query = $this->db->get('users');
return $query->result();
}
function insertAUser(){
$this->load->database();
$data = array('name'=> "Sample Name", 'age'=>"99");
$this->db->insert('users', $data);
}
}
?>
我的_put方法的解决方法是什么,为什么我什么都不插入? 谢谢大家!
除非将方法设置为PUT
或POST
,否则您的Web服务器不会将其视为此类。 在浏览器栏中输入URL时,几乎总是GET请求。 您可以尝试使用curl
curl -X POST -d @filename http://your.url.path/whatever
另一个链接是: https : //superuser.com/questions/149329/what-is-the-curl-command-line-syntax-to-do-a-post-request
因此,您应该能够类似地执行PUT(也许没有数据)。 虽然不太确定这是否应该用iOS标记:)
我通过在REST Client中使用Firefox插件来解决此问题。 我只需要指出标题和正文即可进行放置和发布工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.