Отправка данных из формы drupal клиенту веб-службы (REST) - PullRequest
0 голосов
/ 22 февраля 2012

Я создаю простую форму.Когда я помещаю данные во все поля формы и нажимаю кнопку отправки, все данные, заполненные в форме, должны быть отправлены клиенту веб-службы (остальные).

У меня вопрос, как отправитьвсе данные из моей формы в веб-сервис?Есть ли модуль для этого, или я должен рисовать на API?

Спасибо: D

ОБНОВЛЕНИЕ:

Я создал свою форму, которая содержит 2 поля: "Имя"и «Телефон» и кнопка отправки.(Все в моем собственном модуле)

Затем я показываю свой код, который я только что сделал.Тем не менее, когда я вижу веб-сервис.Данные о доставке не показаны.Я сделал отладку, и я понял, что при запуске: "curl_exec ($ ch)" возвращает мне значение FALSE.

function mymodule_form_submit($form, &$form_state){    
    $name = $form_state['values']['name'];
    $phone = $form_state['values']['phone'];

    $data = array(
        'name' => $name,
        'phone' => $phone
    );

    $url = 'http://[IP]/event/management/attendee';

    $headers = array('Content-Type: multipart/form-data');


    $userpasswd = 'user:pass';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_USERPWD, $userpasswd);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
    curl_setopt($ch, CURLOPT_FAILONERROR,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    $result = curl_exec($ch);
    curl_close($ch);
}

В веб-сервисе используются следующие параметры: посетители [имя], участник['Телефон'].В чем моя ошибка?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

извините за неправильное понимание.

для этого есть два метода реализации:

1- Вы можете создать пользовательский модуль, который перехватывает node_api и форму отправки, получает публикуемые данные и отправляет их веб-службе этим методом

$json = drupal_http_request('http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false');
$decode = json_decode($json->data, TRUE);

или с помощью этого модуля клиентского модуля веб-службы (http://drupal.org/project/wsclient) это только для drupal 7

2- и это руководство по этому модулю http://drupal.org/node/1114308.

0 голосов
/ 22 февраля 2012

Конечно, попробуй сервисный модуль 3. Как обычно, это один из отличных модулей drupal. вот ссылка (http://drupal.org/node/736522), вы также можете аутентифицировать пользователя, прежде чем получать поля, используя два метода: аутентификацию сеанса или аутентификацию aouth. вы можете вызывать ваш drupal из клиентского приложения одним из этих подходов "json, xml -рпц, отдых ".

1 - сначала аутентификация сеанса берет имя пользователя и пароль и аутентифицируется. Затем он получает пользовательские разрешения от drupal, поэтому вам нужно проходить аутентификацию на каждом шаге, чтобы пройти через ваше приложение, которое взаимодействует с вашим drupal. Анонимные пользователи могут получить то, что они хотят, с вашего разрешения в drupal.

2- Во время аутентификации Aouth вы создаете пользователя и добавляете к нему токен, и только пользователь, у которого был токен, связывается с приложением в соответствии с установленным для него правилом доступа. В случае анонимных пользователей они не могут получить или получить что-либо. Связь между drupal и клиентом внутри созданного используется с определенным токеном.

Не стесняйтесь обращаться ко мне за дополнительной поддержкой.

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