Cakephp отправить запрос в веб-сервис - PullRequest
1 голос
/ 06 апреля 2011

У меня есть веб-сервис, который отлично работает с запросами на получение, но при попытке использовать почту он не работает.У меня есть это в моих маршрутах:

Router::connect("/products/service_add", array("controller"=>"products", "action" => "service_add", 'seller'=>true, "[method]" => "POST"));

Продавец как администратор.У меня также есть ParseExtensions ('xml').Мое действие:

    function seller_service_add() {
    $this->log("hit", 'debug');
    $hi = array("message"=>"hey");
    $this->set(compact('hi'));
}

и представление:

<product>
  <?php echo $xml->serialize($hi); ?>
</product>

Когда я пытаюсь отправить сообщение в API, я просто получаю трассировку отладки с информацией о таймере.В том же сценарии, что и при выполнении запроса post, я выполняю get, и при запуске сценария я вижу данные, переданные API для получения, но не для запроса post.

Код, который я использую для отправки сообщения:

$ch = curl_init();

$data = array('Your' => 'Data');

curl_setopt($ch, CURLOPT_URL, "http://localhost/<project>/products/service_add.xml");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$result = curl_exec($ch);

curl_close($ch);

print_r($result);`

Есть идеи, почему это не работает?Любая помощь будет принята с благодарностью.

Извините, если это немного многословно!

Обновление: я добавил строки, чтобы выплевывать вещи в журнал отладки cakephp при срабатывании действий.У меня есть одна запись в beforeFilter, эта запись попадает, и я вижу ее в журнале.Запись в действии service_add отсутствует в журнале, поэтому я предполагаю, что действие не выполняется?

1 Ответ

0 голосов
/ 06 апреля 2011
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

эта строка не должна быть

  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...