2016-06-24 1 views
1

Я сделал модуль Drupal с одной страницы, чтобы отобразить только данные JSON как это:Drupal 7 ошибок JSON -1 Ouput с применением Java-Camunda

drupal_add_http_header('Status', $code); 
drupal_json_output($data); 

$Code может быть 200, 204, 401, 404 и т.д. .

Когда моя страница называется Postman, все в порядке.

Когда моя страница вызывается приложением Java, она возвращает -1.

я получил полную трассировку стека, и я загрузил его на Pastebin: http://pastebin.com/PvCeQuU5

Любая идея?


Я поставил мой hook_menu так:

$items['mymodule/json'] = array(
    'title'    => t('Page title'), 
    'page callback'  => array('mymodule_pagejson'), 
    'access callback' => TRUE, 
    'type'    => MENU_NORMAL_ITEM, 
    'delivery callback' => 'drupal_json_output', 
); 
return $items; 
+0

То, что вы пытаетесь достичь, на самом деле не совсем понятно. Вы делаете запросы с Java на Drupal (это моя догадка, когда вы используете drupal_json_output)? Кстати: - Я считаю, что правильное использование 'drupal_add_http_header' займет код $ и имя ошибки (например:' drupal_add_http_header ('Status', '404 Not Found'); 'как описано здесь: https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/drupal_add_http_header/7.x - Если вы действительно не хотите, чтобы ваш 'mymodule/json' имел видимый пункт меню, contantant 'MENU_NORMAL_ITEM', вероятно, должен быть изменен на' MENU_CALLBACK' – zeropaper

ответ

0

Проблема заключается в том, что доставка обратного вызова с drupal_json_output() возвращает 4-х символов, даже если это 204 статус.

Но статус 204 не позволяет Content-Lenght больше 0 (как сказано в RFC), поэтому уровень html-данных java сломался.

Почтальон показывает, что Content-Lenght больше 0, но позволяет выполнять запрос как обычно.

Смежные вопросы