Android Http请求和响应使用协议缓冲区

Android Http请求和响应使用协议缓冲区,第1张

概述我对协议缓冲区主题非常陌生.但我知道json解析等等现在,我实际上正在此协议缓冲区上工作,我正在制作一个使用带有协议缓冲区的android进行Http请求和响应的应用程序.我正在使用android中的协议缓冲区制作一个登录页面.服务中的一切正常工作墙返回了我想要的每个字段的响应,但是

我对协议缓冲区主题非常陌生.
但我知道Json解析等等
现在,我实际上正在此协议缓冲区上工作,我正在制作一个使用带有协议缓冲区的android进行http请求和响应的应用程序.

我正在使用androID中的协议缓冲区制作一个登录页面.

服务中的一切正常工作墙返回了我想要的每个字段的响应,但是
服务提供给我的信息与服务器发出的响应不同.

我具有有关.proto文件的协议缓冲区的基本知识以及用于从proto编译Java文件的工具,并且也完成了所有连接,我只需要响应或如何序列化和反序列化响应消息.

**AuthenticateUserRequest.Builder abr = AuthenticateUserRequest                    .newBuilder();            abr.setUserID(p_Username);            abr.setPassword(p_Password);            URL url = new URL(                    "http://10.0.2.2:49847/Services");            httpURLConnection conn = (httpURLConnection) url.openConnection();            // ResCode = conn.getResponseCode();            // URLConnection conn = url.openConnection();            conn.setRequestProperty("content-type", "application/x-protobuf");            conn.setDoOutput(true);            OutputStream os = conn.getoutputStream();            abr.build().writeto(os);            os.flush();            os.close();            BufferedReader reader = new BufferedReader(new inputStreamReader(                    conn.getinputStream()));            StringBuilder sb = new StringBuilder();            String line = null;            while ((line = reader.readline()) != null) {                sb.append(line);            }            byte[] result = String.valueOf(sb).getBytes();            AuthenticateUserResponse.parseFrom(result).toBuilder();**

那就是我任何人的代码都可以帮助我解决此问题.

提前致谢.

解决方法:

您的问题是您试图将编码的protobuf响应视为文本.协议缓冲区是二进制序列化格式.如果将二进制数据转换为String,或者尝试使用Reader读取它,则数据将被破坏.

要解决此问题,请用以下代码替换整个代码的第二部分(从创建BufferedReader的行开始):

AuthenticateUserResponse response =    AuthenticateUserResponse.parseFrom(conn.getinputStream());
总结

以上是内存溢出为你收集整理的Android Http请求和响应使用协议缓冲区全部内容,希望文章能够帮你解决Android Http请求和响应使用协议缓冲区所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1087402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存