将数据从drupal格式发送到Web服务客户端(REST)

时间:2012-02-21 20:10:42

标签: web-services drupal-6

我创建了一个简单的表单。当我将数据放在表单的所有字段中并按下提交按钮时,表单上已完成的所有数据都应发送到Web服务客户端(其余)。

我的问题是,如何将表格中的所有数据发送到网络服务?是否有一个模块或我必须在API上绘制?

谢谢:D

更新:

我创建了包含2个字段的表单:“名称”和“电话”以及提交按钮。 (全部在我自己的模块中)

然后我展示了我刚才做的代码。但是,当我看到Web服务时。发货数据,未显示。我做了一个调试,呃我意识到在运行时:“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 :(得分:0)

当然,男人会尝试服务模块3。它像往常一样是drupal伟大的模块之一。 这里是链接(http://drupal.org/node/736522),您还可以在使用会话身份验证或身份验证两种技术获取字段之前对用户进行身份验证。您可以通过以下方法之一从客户端应用程序调用您的drupal“json,xml- rpc,休息“。

1-首先,会话身份验证采用用户名和密码进行身份验证。然后它从drupal获取用户权限,因此您需要在每个步骤中进行身份验证,以通过与您的drupal通信的应用程序。根据您在drupal中的许可,匿名用户可以获得他们想要的内容。

2-在Aouth身份验证中,您创建用户并向其添加令牌,并且只有拥有令牌的用户根据您为其设置的权限规则与应用程序通信。如果是匿名用户,他们无法检索或获取任何内容。 drupal与创建的客户端之间的通信使用了某种令牌。

请随时与我联系以获得更多支持。

答案 1 :(得分:0)

抱歉错过了解。

有两种实现方法可以做到这一点:

1-你可以做一个挂在node_api上的自定义模块,在提交表单上获取发布的数据并通过这种方法发送给webservice

$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);

或使用此模块的Web服务客户端模块(http://drupal.org/project/wsclient)这仅适用于drupal 7

2-这是关于此模块http://drupal.org/node/1114308的指南。