Эффективная отправка сообщений буфера протокола с http на платформу Android - PullRequest
1 голос
/ 16 марта 2010

Я пытаюсь отправить сообщения, сгенерированные кодом буфера протокола Google, по простой HTTP-схеме на сервер. То, что я сейчас реализовал, находится здесь (простите за очевидное незавершенность ...):

 HttpClient client = new DefaultHttpClient();
 String url = "http://192.168.1.69:8888/sdroidmarshal";
 HttpPost postRequest = new HttpPost(url);

 String proto = offers.build().toString();
 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
 nameValuePairs.add(new BasicNameValuePair("sdroidmsg", proto));

 postRequest.setEntity(new UrlEncodedFormEntity(nameValuePairs));

 try {
   ResponseHandler<String> responseHandler = new BasicResponseHandler();
   String responseBody = client.execute(postRequest, responseHandler);

 } catch (Throwable t) {

 }

Я не настолько опытен в общении через Интернет и не более, чем в HTTP - хотя я действительно понимаю основы ... Итак, мой вопрос, прежде чем я буду слепо разрабатывать остальную часть приложения, заключается в том, является ли это или нет это особенно эффективно? В идеале я хотел бы, чтобы сообщения были небольшими, и я предполагаю, что toString () добавляет ненужное форматирование.

1 Ответ

2 голосов
/ 17 марта 2010

Message.toString() распечатывает текстовое (не сериализованное) представление. Возможно, вы захотите использовать ToByteString() или ToByteArray(), чтобы получить сериализованную версию, которую затем можете передать своему URLencoder.
Конечно, это повлечет за собой некоторые накладные расходы для кодирования URL. Если вы можете обрабатывать POST в стиле multipart / form-data, то вы можете просто прикрепить байты напрямую как часть файла с application/octet-stream MIME-типом; таким образом вы будете отправлять наименьшее возможное сообщение, и вам не придется беспокоиться о кодировании / декодировании URL-адреса с обеих сторон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...