首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓HttpurlConnection使用BufferedReader读取数据,但在将数据追加到StringBuilder后得到空值

安卓HttpURLConnection是一种用于进行HTTP通信的类,可以通过它发送HTTP请求并获取服务器返回的数据。在使用HttpURLConnection进行数据读取时,可以使用BufferedReader来读取数据流,并将数据追加到StringBuilder中。

下面是一个示例代码,演示如何使用HttpURLConnection和BufferedReader读取数据:

代码语言:txt
复制
try {
    // 创建URL对象
    URL url = new URL("http://example.com/api/data");

    // 打开连接
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

    // 设置请求方法
    connection.setRequestMethod("GET");

    // 获取输入流
    InputStream inputStream = connection.getInputStream();

    // 创建BufferedReader对象
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

    // 创建StringBuilder对象
    StringBuilder stringBuilder = new StringBuilder();

    // 读取数据
    String line;
    while ((line = reader.readLine()) != null) {
        stringBuilder.append(line);
    }

    // 关闭连接和输入流
    reader.close();
    connection.disconnect();

    // 获取读取的数据
    String responseData = stringBuilder.toString();

    // 处理数据
    // ...

} catch (IOException e) {
    e.printStackTrace();
}

在上述代码中,我们首先创建了一个URL对象,指定了要请求的URL地址。然后,我们打开连接并设置请求方法为GET。接下来,我们获取输入流,并使用BufferedReader来读取数据流。通过循环读取每一行数据,并将其追加到StringBuilder中。最后,我们关闭连接和输入流,并将读取的数据转换为字符串进行进一步处理。

安卓HttpURLConnection的优势在于它是Android平台内置的类,无需额外导入库文件。它提供了灵活的API,可以满足各种HTTP通信需求。它还支持HTTPS协议,可以进行安全的数据传输。

安卓HttpURLConnection适用于各种场景,例如获取服务器数据、上传文件、发送POST请求等。它可以与其他安卓组件(如AsyncTask或线程)结合使用,实现异步的网络请求。

腾讯云提供了一系列云计算相关的产品,其中包括云服务器、云数据库、云存储等。关于安卓HttpURLConnection的具体使用,可以参考腾讯云的文档和示例代码:

  • 腾讯云云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云云存储:https://cloud.tencent.com/product/cos

请注意,以上链接仅供参考,具体的产品选择和使用需根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

天气预报app(一)——解析Json数据数据类封装

简易的天气app(一)——解析Json数据数据类封装 ✅简易的天气app(二)——适配器、每小时数据展示 ✅简易的天气app(三)——城市管理、数据库操作 ✅简易的天气app(四)—...项目结构 api请求工具包 那么既然是请求api解析数据,自然离不开HttpUrlConnection,如果学的不是HttpUrlConnection请自行根据更改。...首先封装一个工具包,表示根据指定地址网络请求得到数据得到的是string字符串,实是json数据 import java.io.BufferedReader; import java.io.IOException...connection.setConnectTimeout(5000); connection.setReadTimeout(5000); // 从连接中读取数据...= new BufferedReader(inputStreamReader); // 容器 StringBuilder stringBuilder =

1.8K40
  • 图析:String,StringBuffer与StringBuilder的区别

    我们来看一下这张对String操作时内存变化的图: 我们可以看到,初始String为“hello”,然后在这个字符串后面加上新的字符串“world”,这个过程是需要重新在栈堆内存中开辟内存空间的,最终得到了...; (2)多线程操作字符串缓冲区下操作大量数据 StringBuffer; (3)单线程操作字符串缓冲区下操作大量数据 StringBuilder(推荐使用)。...每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串生成器中,append方法始终将这些字符添加到生成器的末端,而insert方法则在指定的点添加字符。...StringBuilder的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。...,然后对网站返回的数据流进行读取,最终应用StringBuilder()进行字符串数据读取和显示。

    25810

    】在使用HTTP协议的最佳实践

    使用HTTP协议的最佳实践 在开发应用时,网络通信是一个不可或缺的方面。HTTP协议是许多应用程序数据交换的基础,因此了解如何正确地使用它对于确保应用的性能和安全性至关重要。...选择合适的HTTP客户端 提供了多种HTTP客户端,包括HttpURLConnection、OkHttp和Retrofit等。每个客户端都有其优势和特点。...点击OK,会在res目录下创建一个名为xml的文件夹。 network_security_config.xml文件拖放到xml文件夹中。...结论 在应用开发中,正确使用HTTP协议对于提供良好的用户体验和保护用户数据至关重要。通过遵循上述最佳实践,开发者可以确保其应用程序在网络通信方面运行高效且安全。...希望这篇文章能够帮助您理解在使用HTTP协议的重要性以及如何实现最佳实践。

    8410

    【Java 进阶篇】Java HTTP 概述

    使用客户端-服务器模型,其中客户端发出请求,服务器提供响应。 HTTP 的基本操作包括: GET:从服务器获取资源。 POST:向服务器提交数据以进行处理。 PUT:资源存储在服务器上。...例如,浏览器通常使用 GET 请求来获取网页内容,而通过 HTML 表单提交的数据使用 POST 请求来处理。...请求体:对于 POST 请求,包括要发送给服务器的数据。对于 GET 请求,通常为。 请求方法:请求方法指定了客户端希望服务器执行的操作。...请求体:对于某些请求,如 POST 请求,请求体包含要发送到服务器的数据。请求体通常用于提交表单数据、JSON 数据等。在示例中,我们的 GET 请求没有请求体,因此为。...您可以使用 HttpURLConnection 来获取服务器的响应数据

    26630

    【JavaSE专栏91】Java如何主动发起Http、Https请求?

    当客户端发起 HTTPS 请求时,服务器会返回一个公钥证书,客户端使用服务器的公钥加密通信。 在通信过程中,服务器使用私钥解密客户端发送的数据,客户端使用服务器的公钥加密发送的数据。...请求,以下是一个使用 java.net.HttpURLConnection 发起 HTTP GET 请求的示例代码,请同学们复制到本地执行。...---- 四、http 请求的状态码和数据解析 Java中可以使用 HttpURLConnection 或第三方库来发起 HTTP 请求,并获取响应的状态码和数据。...然后,关于数据解析,具体如何解析响应数据取决于数据的格式(如 JSON、XML、HTML 等)和使用的库。...JSON字符串解析为 JSONObject,然后通过 getString(key) 和 getInt(key) 等方法获取对应字段的

    81120

    【Java】已解决:java.net.SocketTimeoutException

    本文深入探讨该异常的背景、原因、错误与正确的代码示例,并提供相关注意事项,帮助开发者快速解决这一问题。...这个异常经常出现在进行HTTP请求、数据库连接或其他需要与远程服务器通信的场景中。例如,在一个典型的HTTP请求中,开发者可能会设置一个读取超时时间。...如果服务器在这个时间内没有返回数据,则会抛出SocketTimeoutException。...reader = new BufferedReader(new InputStreamReader(responseStream)); StringBuilder result = new...使用重试机制:对于可能因网络问题导致的超时异常,可以考虑引入重试机制,增加请求的可靠性。 异步请求:在可能导致长时间阻塞的操作中,使用异步请求或线程池,以避免超时异常对主线程的影响。

    19610

    在线请求天气API,并解析其中的json数据予以显示

    Android网络与数据存储 第二章学习 ---- 在线请求天气API,并解析其中的json数据予以显示#### 概要: 请求互联网信息提供商并取得返回的数据使用HttpURLConnection,...等待数据下载成功得到的Json,把它 解析成程序可利用的数据使用到JSONObject ---- 使用和风天气的API作为范例,只要注册就可免费用的还凑合的天气预报平台 http://www.heweather.com.../ 1.HttpURLConnection类的使用##### 本来Android发送Http请求拥有两种方式,分别是HttpURLConnection和HttpClient,但在Android 6.0...reader = new BufferedReader(new InputStreamReader(in, "UTF-8")); StringBuilder response = new StringBuilder...咳咳,插句题外话,当然也可以返回数据解析为比特流返回 public class ToByteUtil { //从流中读取数据 public static byte[] read(InputStream

    5.9K41

    Android基础总结(9)——网络技术

    这里主要讲的是如何在手机端使用HTTP协议和服务器端进行网络交互,并对服务器返回的数据进行解析,这也是Android最常使用到的网络技术了。...HttpURLConnection访问网络   使用HttpURLConnection访问网络的方式很简单,具体按以下步骤执行就可以了: 获取HttpURLConnection对象,一般我们只需要new...con = (HttpURLConnection) url.openConnection() ; 获取HttpURLConnection对象之后,设置HTTP请求所使用的方法。...1 con.setRequestMethod("GET"); 接下来可以进行一些自由的设置,比如设置连接超时、读取超时的毫秒数,以及服务器希望得到的一些消息头等 1 con.setConnectTimeout...(8000); 2 con.setReadTimeout(8000); 之后我们调用getInputStream()方法得到从服务器返回的输入流,然后从里面读取数据

    74850

    Android采用GET方法进行网络传

    前两天学习了使用GET方法来进行与WEB的网络传问题。 今天来说一下大概方法。 WEB应用 在这里,我只建立一个简单的Servlet,用来接收端发来的信息。...HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } } 客户端...android:onClick="save" android:text="@string/button" / </LinearLayout 之后我要在Activity里界面的编辑框里面的传到...这里我要说一句,我们采用的GET方法,是需要传递给WEB端的数据放在URL路径,然后WEB端进行解析得到的,所以我们要在方法中将URL路径给拼凑完成然后传给WEB端(里面的IP是我tomcat服务器本机的...这里仅仅是一个传的演示,没用用到数据库和输入输出流,真正做开发的时候这些东西是少不了的,所以要学会将东西结合起来应用。 以上就是本文的全部内容,希望对大家的学习有所帮助。

    1.1K20

    【Java 进阶篇】Java Request 原理详解

    当我们使用Java编写网络应用时,了解HTTP请求的工作原理变得至关重要。本文详细介绍Java中HTTP请求的原理,包括请求的结构、发送请求的方法以及处理请求的过程。...每个请求头以字段名和字段组成,字段名和字段之间用冒号分隔。不同的请求头之间也以换行符分隔。 请求体(Request Body):请求体包含了要发送到服务器的数据。...使用HttpURLConnection HttpURLConnection是Java标准库中的类,用于发送HTTP请求。...下面是一个使用HttpURLConnection发送GET请求的示例: import java.io.BufferedReader; import java.io.InputStreamReader;...HttpURLConnection类创建一个HTTP连接,设置请求方法为GET,然后读取响应内容。

    51230

    2--网络编程之http协议简介+小案例引入

    零、前言 1.初衷 一大堆网络框架,会用倒是会用,但总觉得封装得太多,就太表象了,这让我看不清网络的内在。...为了更清晰的认识网络,打算从起点来看一下网络编程 2.本文测试的url为已在服务器上,可访问: 访问返回Json地址:http://www.toly1994.com:8089/swords..."/> 使用原生网络API请求网络大致步骤: 1.创建URL对象url:new URL(String path) 2.使用url连接并获取HttpURLConnection对象conn:url.openConnection...请求网络.png 3.引申:可以通过输入网址来获取不同的返回,并用TextView显示,如: ?...网络图片.png ---- 后记:捷文规范 1.本文成长记录及勘误表 项目源码 日期 备注 V0.1--无 2018-10-15 2--网络编程之http协议简介+小案例引入 2.更多关于我 笔名

    75930

    解决java.lang.SecurityException: Permission denied (missing INTERNET permission?)

    例如,你可以使用​​HttpURLConnection​​类从URL中获取数据并显示在TextView中:javaCopy code// 导入所需的类import android.os.AsyncTask...reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder stringBuilder...结果显示在TextView中 @Override protected void onPostExecute(String result) { super.onPostExecute...​​:用于向组件添加附加的元数据。​​android:name​​:必需属性,用来指定元数据的名称。​​android:value​​:可选属性,用来指定元数据。 ​​...在构建和运行应用程序时,系统会读取和解析该文件,并根据其中的声明进行相应的处理。因此,保持​​AndroidManifest.xml​​文件的正确和完整是非常重要的,以确保应用程序能够正确运行。

    85620
    领券