2012-02-02 3 views
1

Я пытаюсь реализовать Basecamp API в приложении для Android. Я пытаюсь переименовать URL-адрес от .xml до .json. Он отлично работает для некоторых веб-сервисов, таких как народы, компании и т. Д.BaseCamp API не предоставляет ответы JSON

Но когда я пытаюсь получить ответ json конкретной компании, он дает мне ответ в xml, хотя я прошу json.

как

String url = "https://"+ domain +"/companies/" + companyId +".json" 

, а также то же самое для

"https://" + domain + "/projects/count.json". 

Также я пытаюсь реализовать для ссылки ниже это не дает мне результат в формате JSON (это он дает пустой ответ), но если я измените расширение от .json до .xml, тогда он отлично работает для меня и дает мне ответ в XML

1. "https://" + domain + "/projects/" + projectid + 
    "/calendar_entries/milestones.json" 

2. "https://" + domain + "/todo_lists.json?responsible_party=" + id 

3. "https://" + domain + "/projects/" + projectId + 
    "/calendar_entries.json" 

4. "https://" + domain + "/projects/" + projectId + 
    "/categories.xml?type=post" 

Я использую полный API-интерфейс Restore для подключения к Restful web-сервису.

Я не знаю, почему я не получаю ответ json от веб-службы.

Пожалуйста, помогите мне.

+0

нужна ваша помощь здесь http://stackoverflow.com/questions/13858098/login-to-new-basecamp-programatically-without-user-intervention –

ответ

1

Глядя на their API docs, они, похоже, не поддерживают ответы JSON.

Basecamp API реализован в виде ванильного XML через HTTP с использованием всех четырех глаголов (GET/POST/PUT/DELETE)

Некоторые маршруты возможно возвращение JSON - вероятно, они работают над JSON ответы & пока не выкатили. Но документы говорят, что это XML, поэтому вы застряли в XML на данный момент.

+0

Но в обсуждении http://groups.google.com/group /37signals-api/browse_thread/thread/edfbf31f61cae4e7.They поддерживает некоторый запрос JSON. – Dharmendra

+0

@ Дхармендра - «мы не гарантируем». Это в значительной степени подводит итог моему ответу. – Sathya

+0

Да, это правда. – Dharmendra

0

Вы можете попробовать добавить «Принять» в запросах заголовки что-то вроде

Accept : application/json 
+0

Я уже добавил 'Accept' to' application/json' – Dharmendra

-1

Похоже, что вы используете Basecamp Классический API, который не поддерживает ответа JSON.

Все новые Basecamp имеют все новые API, поддерживающие API REST-стиля, который использует JSON для сериализации и OAuth 2 для аутентификации. Вы можете найти его здесь (https://github.com/37signals/bcx-api).