2012-04-12 2 views
1

Его первый раз использовать веб-сервис в iOS. REST был моим первым выбором, и я использую зажигание кода для его формирования.Веб-сервис Rest API - iOS

У меня есть контроллер:

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"}]} 

, это дает мне большой выход, используя RKRequest по RestKit в моем приложении.

Проблема идет с методом put. Этот URL-адрес:

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 почему я ничего не вставляя? Спасибо всем!

ответ

0

У меня возникла эта проблема с помощью Firefox plug in rest Client. Мне просто нужно указать заголовки и тело, чтобы они делали и отправляли работу.

1

Если вы не установили метод PUT или POST, ваш веб-сервер не будет рассматривать его как таковой. Когда вы вводите 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. :)

+0

Я действительно смущен, поэтому я отметил iOS. http://stackoverflow.com/questions/10136971/rest-web-service-for-reskit – ruelluna

Смежные вопросы