gpt4 book ai didi

android - 在 android 平台上使用 http 有效地发送 Protocol Buffer 消息

转载 作者:可可西里 更新时间:2023-11-01 17:15:48 24 4
gpt4 key购买 nike

我正在尝试通过简单的 HTTP 方案将 Google Protocol Buffer 代码生成的消息发送到服务器。我目前已经实现的是这里(原谅明显的不完整......):

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

}

我在 Internet 通信方面经验不足,在 HTTP 方面也不尽如人意 - 虽然我确实了解基础知识......所以我的问题是,在我围绕此盲目开发应用程序的其余部分之前,是否这样特别高效?理想情况下,我希望保持消息较小,并且我假设 toString() 添加了一些不必要的格式。

最佳答案

Message.toString() 打印出文本(非序列化)表示。您可能想使用 ToByteString()ToByteArray() 获取序列化版本,然后您可以将其传递给您的 URLencoder。
当然,这会产生一些 URL 编码的开销。如果您可以处理多部分/表单数据样式的 POST,那么您可以直接将字节附加为文件部分,使用 application/octet-stream MIME 类型;这样您将发送尽可能小的消息,并且不必担心两端的 URL 编码/解码。

关于android - 在 android 平台上使用 http 有效地发送 Protocol Buffer 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com