Формат запроса RESTserver POST - PullRequest
0 голосов
/ 11 августа 2011

Я разрабатываю API с использованием CodeIgniter и RestServer для CI (см. Ниже).Я также использую плагин Firefox RestClient для тестирования API.

Меня интересует, как выполнить тестовое сообщение (в каком формате).} но это не сработало.API не "видит" поля входящих сообщений.

http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

тело сообщения не обязательно должно иметь определенный формат, но наиболее удобным является кодирование тела таким же образом, как веб-браузеры кодируют данные формы, в частности Content-Type: application/x-www-form-urlencoded.В частности, заголовки Host и Content-Length являются , а не необязательными, а заголовок Content-Type обычно требуется, чтобы сообщить серверу, как интерпретировать тело.Правильно сформированный POST-запрос будет выглядеть следующим образом:

POST /path/to/resource HTTP/1.0
Host: example.com:80
Content-Length: 21
Content-Type: application/x-www-form-urlencoded

key=value&key2=value2

Сервер все еще должен распознать заголовок типа контента и проанализировать тело таким образом.

Обратите внимание, что данные послевсе заголовки, а не как часть пути запроса (в первой строке).

0 голосов
/ 12 августа 2011

При желании вы можете использовать Proxy Library , которую я написал для CI. При этом вы можете имитировать любой из возможных вызовов вашего API (он работает и для популярного REST API), с более простым синтаксисом вместо использования cURL ...

// An example call to your API end point using POST, will be simply
$this->load->library('proxy');
$this->proxy->http('POST', 'http://somesite.com/api/users', array('username' => 'foo', 'password' => 'bar'));

Вы также можете определить любой HTTP-заголовок (например, API-ключ или любой другой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...