java怎么通过url下载字符串且不阻塞线程
时间: 2024-01-24 16:18:23 浏览: 27
可以使用Java中的HttpURLConnection来下载字符串,并且不阻塞线程。以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class DownloadString {
public static void main(String[] args) throws IOException {
URL url = new URL("https://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// 设置连接超时和读取超时时间
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
// 发起请求
connection.connect();
// 读取响应内容
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
// 关闭连接和流
reader.close();
connection.disconnect();
String result = stringBuilder.toString();
System.out.println(result);
}
}
```
在这个示例中,我们使用了HttpURLConnection来发起GET请求,并设置了连接超时和读取超时时间。使用BufferedReader来读取响应内容,并将其存储到StringBuilder中。最后,我们关闭连接和流,并将响应内容转换为字符串输出。
由于我们使用了HttpURLConnection来下载字符串,所以不会阻塞线程。