代码
public class HttpDemo01{
public static void main(String[] args){
//1,我们要访问什么网页,用URL进行封装域名
URL url=new URL("https://www.baidu.com");
//2,通过域名打开一个连接服务器的连接对象cunn,没有真正链接
//HttpURLConnection底层由Socket实现
HttpURLConnection conn= (HttpURLConnection)url.openConnection();
//3,封装请求头
conn.setRequestMethod("GET");//设置请求方式
conn.setUseCaches(false);//是否使用缓冲(是否存储数据)
conn.setConnectTimeout(5000);//设置超时时间5s
conn.setRequestProperty("Accept","accept后面的");
conn.setRequestProperty("User-Agent","User-Agent后面的");
conn.setRequestProperty("Accept","Http");
//写到文本里
Bufferedwriter bw = new BufferedWriter(newFileWriter("baidu.txt"));
//4,建立连接并发送请求头,真正的去连接服务器
conn,connect();//conn:既可以负责发送连接,也可以负责接收数据
// System.out.println(conn.getResponseCode());//获取响应状态码
bw.write(conn.getResponseCode()+"");//不加“”会认为是字节
bw.newLine();
bw.flush();
Map<String,List<String>> map=conn.getHeaderFields();//获取所有响应头中内容
//获取所有响应头中的内容
for(String key:map.keySet()){
// System.out.println(key+":"+map.get(key));
bw.write(key+":"+map.get(key));
bw.newLine();
bw.flush();
}
//获取具体的数据内容,以TCP来
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));//获取来自服务器的输入流,字符
String line = null;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
conn.disconnect();
}
}
//默认是UTF-8