Invio in modo efficiente i messaggi di buffer del protocollo con HTTP su una piattaforma Android

StackOverflow https://stackoverflow.com/questions/2458056

  •  20-09-2019
  •  | 
  •  

Domanda

Sto cercando di inviare messaggi generati dal codice buffer di protocollo di Google tramite un semplice schema HTTP a un server. Quello che ho attualmente implementato è qui (perdona l'ovvia incompletezza ...):

 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) {

 }

Non sono così esperto con le comunicazioni su Internet e non più con HTTP - mentre capisco le basi ... quindi la mia domanda, prima di sviluppare ciecamente il resto dell'applicazione attorno a questo, è se questo è particolarmente efficiente? Idealmente vorrei mantenere i messaggi piccoli e presumo che ToString () aggiunga una formattazione inutile.

È stato utile?

Soluzione

Message.toString() Stampa la rappresentazione testuale (non serializzata). Probabilmente vuoi usare ToByteString() o ToByteArray() Per ottenere la versione serializzata, che puoi quindi passare al tuo Urlencoder.
Naturalmente, ciò dovrà sostenere un po 'di sovraccarico per la codifica URL. Se è possibile gestire i post in stile multipart/moduli, puoi semplicemente collegare i byte direttamente come una parte di file, con application/octet-stream Tipo mime; In questo modo invierai il messaggio più piccolo possibile e non dovrai preoccuparti della codifica / decodifica degli URL alle due estremità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top