package demo;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpDemo {
public static void main(String[] args) {
HttpDemo demo = new HttpDemo();
String getUrl = "https://blog.csdn.net/guaishounan/article/list/1?";
String response = demo.sendGet(getUrl);
System.out.println(response);
}
public String sendGet(String getUrl) {
// 定义body和line来接收响应的正文和每一行内容
String body = "", line = "";
// 定义HttpURLConnection
HttpURLConnection urlConnection = null;
try {
// 利用URL类和getUrl地址来实例化核心类HttpURLConnection
URL url = new URL(getUrl);
urlConnection = (HttpURLConnection) url.openConnection();
// 设置HTTP请求的各项参数
urlConnection.setUseCaches(false);
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
urlConnection.setRequestProperty("Cookie", "");
// 打开连接,进行请求的处理
urlConnection.connect();
// 利用InputStream将响应读取取字节流中
InputStream is = urlConnection.getInputStream();
// 利用InputStreamReader将响应转换为字符流,并使用UTF-8进行编码
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
// 利用缓冲区读取响应文本,提升性能,按行读取响应文本,更加方便
BufferedReader br = new BufferedReader(isr);
// 将每一行的内容附加到字符串body后面,加上换行符,让响应可读性更强
// 保证响应给客户端的文本可以被完整还原,与查看源文件看到的内容一致
while ((line = br.readLine()) != null) {
body += "\n" + line;
}
// 关闭缓冲区对象
br.close();
} catch (Exception e) {
e.printStackTrace();
}
// 断开本次连接
urlConnection.disconnect();
// 将获取到的响应正文内容返回
return body;
}
}