Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何通过套接字读取HTTP响应?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在 Android设备上创建http代理服务器.当我尝试从http服务器(example1.com)读取响应(example1.com包含头文件中的content-length)
如果http服务器包含content-length,那么我将从content-length读取字节
否则我读了所有的响应字节

byte [] bytes = IoUtils.toByteArray(inFromServer);

问题是,当响应包含content-length的响应时
快速阅读
如果响应不包含content-length,则响应缓慢读取.

这是我的代码

DataInputStream in = new DataInputStream(inFromServer);
        //BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String line = "";
        String str = "";
        Integer len = 0;
        while(true) {
            line = in.readLine();
            if  (line.indexOf("Content-Length") != -1)
            {
                len = Integer.parseInt( line.split("\\D+")[1] );
                //System.out.println("LINEE="+len);
            }

            out.println(linE);
            str = str + line + '\n';
            if(line.isEmpty())  break;
        }
        int i = Integer.valueOf(len);
        String body= "";
        System.out.println("i="+i);
        if (i>0) {
            byte[] buf = new byte[i];
            in.readFully(buf);
            out.write(buf);
            for (byte b:buf) {
                body = body + (char)b;
            }

        }else{

            byte[] bytes = IoUtils.toByteArray(inFromServer);
            out.write(bytes);
        }

out-outStream到浏览器

解决方法

尝试以下代码
// Get server response
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.geTinputStream()));
    String line;
    StringBuilder builder = new StringBuilder();
    while ((line = reader.readLine()) != null) {
        builder.append(linE);
    }
    String response = builder.toString()
    // Handle response...
}

大佬总结

以上是大佬教程为你收集整理的android – 如何通过套接字读取HTTP响应?全部内容,希望文章能够帮你解决android – 如何通过套接字读取HTTP响应?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。