2012-05-02 1 views
-1

Я хотел бы написать приложение для Android, которое связывается с центральным сервером, написанным на php, обмениваться данными с ним и получать/отправлять данные, например, аутентификацию пользователя, отображение пользовательских настроек и т. Д. Мой вопрос - это лучший способ сделать это. Используйте веб-службу на стороне сервера, которая возвращает xml и анализирует xml на андроид или использует json или использует ответ post html и анализирует его. Любая помощь по этому поводу была бы весьма признательна.Лучший способ получить данные с сервера на Android-телефон

+0

json ... проще в использовании и более гибкой – WarrenFaith

ответ

9

Json является самым лучшим вариантом

, потому что это легкий путь и может легко преобразован в объект Java. Короткий JSON лучший

+0

Спасибо за ответ, у меня есть еще один вопрос, что я должен использовать на стороне сервера, чтобы генерировать JSON. –

+0

хотя я не веб-разработчик, слышу ссылку для php ... http://www.sencha.com/learn/legacy/Tutorial:Creating_JSON_Data_in_PHP –

1

используйте json. XML слишком велик. html не предназначен для обмена данными.

0

зависит от клиента и команды сервера. В android nice JSON API доступен. легко разобрать входящие данные и подготовить запрос в формате JSON.

Хотя вы также можете пойти за xml. хорошо подходит для xml.

0

Я бы рекомендовал JASON. В наши дни это стандарт дефакто. И не так тяжело, как XML.

Я использую множество веб-сервисов C# JASON от моих приложений ANDroid, и все они работают как шарм. Я уверен, что это будет так же и с PHP-сервисами.

Отзыв HTML-ответа будет одобрен для формы, но для сложных данных вам будет трудно.

Поэтому я буду голосовать за JASON.

Также взгляните на это supplementary read.

2

Как и другие ответы, JSON. Он легкий, простой в использовании, у Android есть стандартные библиотеки, которые поддерживают JSON.

пример:

ContentValues values = new ContentValues(); 
JSONArray projects = new JSONArray(_webService.getStringResponse()); 
int counter = 0; 
int projectSize = projects.length(); 

while(projectCount < projectSize) { 
    JSONObject projectData = projects.getJSONObject(projectCount); 

    values.put(DbProperties.PROJECT_ID, projectData.getString("pid")); 
    values.put(DbProperties.CUSTOMER_ID, projectData.getString("cid")); 
    values.put(DbProperties.SETTLEMENT, projectData.getString("settl")); 
    //Do some database saving for example 

    counter++; 
} 

Что здесь происходит (взял это из приложения, так что вы получите идею) заключается в следующем:

я отправляю запрос, получить результат обратно в формате JSON. Я создаю объект JSONArray, который принимает строку json в качестве параметра конструктора. В моем случае строка json состоит из массива, содержащего объекты json.

Я прохожу через каждый элемент в JSONArray, создаю объект JSONObject и затем извлекаю данные из объект json и сохранить его в базе данных.

Моя цель с помощью этого простого примера - показать несколько вещей;

  • его невероятно легко работать с JSON в Android
  • легко сжать строку просто шортенинг имена ключей (JSON в основном ключ-значение в паре).

Последний имеет преимущество, заключающееся в том, что он уменьшает размер строки, в то время как как con, данные менее читаемы.Я сделал это по причинам сжатия, и мой код очень хорошо прокомментирован. Чтобы отразить это сжатие.

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