2013-05-30 2 views
0

Я разрабатываю приложение Java Server Aplication и приложение для Android и мое приложение для Android должно отправлять и получать данные с/на сервер (двунаправленный), например, мое приложение для Android должно Войдите на сервер, и серверу необходимо знать, кто вошел в систему. Какой протокол вы рекомендуете мне делать в этом виде программы?Сервер - Клиентское соединение между приложением android и сервером

ответ

1

Обычно в этой ситуации вы можете использовать протокол HTTP по нескольким причинам. Прежде всего, вы можете добраться до своего сервера, даже если он находится за брандмауэром или что-то в этом роде. Во-вторых, используя HTTP, вы можете отправлять XML или JSON-данные, широко используемые в android. Единственное ограничение, которое у вас есть, это протокол HTTP - это синхронный протокол, поэтому вы отправляете и ждете ответа. Используя HTTP, вы можете использовать существующую архитектуру сервера, и вы можете обернуть свой бизнес-уровень веб-сервисами, чтобы вы могли предоставлять свои услуги. Если вам нужен этот сервер, вы можете обратиться к своему приложению, с помощью которого вы можете использовать Google Cloud Mesaging.

1

Используйте Http-запрос (получите или отправьте запрос) для связи с сервером. Вы должны использовать поток или AsyncTask для выполнения вашего запроса или выполнить сбой из Api 11+. Прилагаю пример http-запроса, который получает xml:

import org.apache.http.*; 
    [..] 

    public String getXmlFromUrl(String url) { 
    String xml = null; 

    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(url); 
     HttpResponse httpResponse = httpClient.execute(httpGet); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     xml = EntityUtils.toString(httpEntity); 
    } catch (UnsupportedEncodingException e) { 
     Log.d("XMLParser-getXmlFromUrl", "UnsupportedEncodingException"); 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     Log.d("XMLParser-getXmlFromUrl", "ClientProtocolException"); 
     e.printStackTrace(); 
    } catch (IOException e) { 
     Log.d("XMLParser-getXmlFromUrl", "IOException"); 
     e.printStackTrace(); 
    } 
    // return XML 
    return xml; 
} 
Смежные вопросы