Вопрос
Я использую Drupal 6 и Services 6.3x модуль, но я не могу полностью использовать этот модуль. Я также включил модуль сервера REST. Я добавил новую услугу и добавил к нему ресурсы. Я добавил к нему ресурс узла и могу получить все узлы в формате JSON
Я не могу понять:-
Точный URI или может быть процедура для вызова gettree метод в ресурсе Taxonomy_vocabulary
Как выполнить все методы (CRUD) функции под каждым включенным ресурсом
URL -> myDomain.com/service/rest/node.json работает для меня, но как я могу получить доступ к методу gettree ??
Я застрял на этом, как навсегда, я даже опубликовал работу на сайте Drupal, но я думаю, что есть очень редкие люди, которые знают об этом.
Редактировать :-
Живая ссылка есть http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary
Ниже приведено код Java, который я использую:-
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response = null;
HttpPost postMethod = new HttpPost("http://delvelogic.com/merchant/drupal-6.22/rest/taxonomy_vocabulary/getTree.json");
postMethod.addHeader("Content-type", "application/x-www-form-urlencoded");
postMethod.addHeader("Accept","application/json");
// postMethod.addHeader("Authorization", "basic " + Base64.encodeBytes(("admin"+":"+"admin123").getBytes()));
// httpClient.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT));
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("vid", ""+1));
nameValuePairs.add(new BasicNameValuePair("parent", ""+1));
nameValuePairs.add(new BasicNameValuePair("maxdepth",""+1));
// nameValuePairs.add(new BasicNameValuePair())
try{
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpClient.execute(postMethod);
InputStream input = response.getEntity().getContent();
BufferedReader rd = new BufferedReader(new InputStreamReader(input),input.toString().length());
String line;
StringBuilder sb = new StringBuilder();
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
uploadresponse = sb.toString();
Log.d("Response", ""+uploadresponse);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
Также, если есть какое -то добавление Firefox, чтобы я мог увидеть работающий метод?
Редактировать снова:-
Я обнаружил, что это добавление на restclient поработала над Firefox
Я выбираю метод в качестве поста в URL, который я набрал http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary/gettree
Добавлен заголовок:-
Тип контента: приложение/x-www-form-urlencoded
Принять: приложение/json
Запросить тело:-
& vid = 1 & parent = 1 & maxdepth = 1
Это дает мне 404, не найденное без словарного запаса с идентификатором 1
Решение
Согласно документации, URL -адреса не обязательно должны иметь .json в конце, но я думаю, что это настройка, которую вы изменили, если он работает для функций узла. Я знаю, что вам не понравится этот ответ (я совершенно уверен, что вы пробовали его раньше), но URL -адрес: mydomain.com/service/rest/taxonomy_vocabulary/getTree
. Анкет Я даже прошел через соответствующий код модулей Service и REST_SERVER, и это определенно то, чем он должен быть.
Для получения дополнительной доказательства (действительный, пройденный) тестовый модуль для Services Taskononomy_vocabulary:
ServicesResourcetAxonomyTests :: testVocabularygetTree.
Вы увидите, что URL -адреса, доступ к которому успешно прошел тест, доступны: $path . '/taxonomy_vocabulary/getTree'
, куда $path
это путь к конечной точке (т.е. mymodule.com/service/rest/
).
Это действительно поможет, если бы вы могли предоставить живую ссылку, поэтому мы можем проверить, есть ли проблема в вашем коде Java или с Drupal (хотя последний кажется очень маловероятным).
РЕДАКТИРОВАТЬ
PS прокомментируйте этот ответ, так как у меня есть большой опыт работы с модулем услуг, и я уверен, что смогу указать вам в правильном направлении с помощью немного больше информации. Мне больно видеть, как кто -то борется с чем -то, с чем у меня не было ничего, кроме радости в прошлом!
Еще одно редактирование
Это ответ, от которого я получаю http://delvelogic.com/merchant/drupal-6.22/services/rest/taxonomy_vocabulary
:
<?xml version="1.0" encoding="utf-8"?>
<result>
<nodes/>
<module>taxonomy</module>
<name></name>
<help></help>
<relations>0</relations>
<hierarchy>0</hierarchy>
<multiple>0</multiple>
<required>0</required>
<tags>0</tags>
<weight>0</weight>
<vid>4</vid>
</result>
Обратите внимание на <vid>4</vid>
немного ... я почти уверен vid
Вы должны искать 4
, нет 1
!