Rest 德鲁帕7休息:我不能执行POST和PUT方法。错误为:不可接受:需要节点类型,代码:406?
我用的是drupal7。我的用于get和delete的drupal_http_request()对于经过身份验证的用户来说工作正常,但是post和put方法不起作用 错误为Rest 德鲁帕7休息:我不能执行POST和PUT方法。错误为:不可接受:需要节点类型,代码:406?,rest,http,drupal,drupal-7,httprequest,Rest,Http,Drupal,Drupal 7,Httprequest,我用的是drupal7。我的用于get和delete的drupal_http_request()对于经过身份验证的用户来说工作正常,但是post和put方法不起作用 错误为:不可接受:需要节点类型,http错误代码为:406。我的代码如下: function ws_form_post_auth() { $base_url = 'http://localhost/drupalws/api/v1'; $data = array( 'username' => 'student1', '
:不可接受:需要节点类型,http错误代码为:406
。我的代码如下:
function ws_form_post_auth() {
$base_url = 'http://localhost/drupalws/api/v1';
$data = array(
'username' => 'student1',
'password' => 'welcome',
);
$data = http_build_query($data, '', '&');
$options = array(
'headers' => array(
'Accept' => 'application/json',
),
'method' => 'POST',
'data' => $data
);
$response = drupal_http_request($base_url . '/user/login', $options);
$data = json_decode($response->data);
// Check if login was successful
if ($response->code == 200) {
$options['headers']['Cookie'] = $data->session_name . '=' . $data->sessid;
$options['headers']['X-CSRF-Token'] = $data->token;
$data = array(
'title' => 'First forum post',
'type'=> 'forum',
'body'=> array(
'und'=>array(
0=> array(
'value'=>'This is my first forum post via httprequest.'
)
)
)
);
$data = json_encode($data);
$options['data'] = $data;
$options['method'] = 'POST';
$response = drupal_http_request($base_url . '/node', $options);
return $response->status_message;
}
return $response->status_message;
}
我得到了我的问题的解决方案,我只是在标题中遗漏了一个内容类型
[……]
如果($response->code==200){
[……]
$options['headers']['Cookie'] = $data->session_name . '=' . $data->sessid;
$options['headers']['X-CSRF-Token'] = $data->token;
$options['headers']['Content-Type'] = 'application/json';