import java.net.*;
import java.io.*;
public class NewCeShi {
public static void main(String[] args) {
//捕获异常
try {
//URL类是java.net.URL API中的类,专用于URL网址
URL url = new URL("https://www.baidu.com");
//HttpUrlConnection是 java.net.UrlConnection 中的超类继承了UrlConnection的基本方法,UrlConnection 继承于java.lang.Object
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//setRequestMethodlei方法为设置连接类型 其中有 GET POST HEAD OPTIONS PUT DELETE TRACE 方法继承于HttpUrlConnection
conn.setRequestMethod("GET");
//setReadTimeout 方法设置一个超时值用于等待 注:此方法继承与UrlConntion 而不是 HttpUrlConnection 超类自带的
conn.setReadTimeout(8000);
/*InputStreamReader 来自于 java.io 流中 , 因为想要获取Http返回的值就需要用到 getInputStream 方法,而 getInputStream 方法返回的类型为 java.io 流中的
InputStreamReader类型 注:我理解 InputStreamReader 为可变类型。用于辅助值的转换,而不负责实例化输出
*/
InputStreamReader txt = new InputStreamReader(conn.getInputStream());
//BufferedReader 类为 java.io 流中的一种类型,此类型可以把 InputStreamReader 类型转换为 BufferedReader 类型用于实例化输出
BufferedReader Sec=new BufferedReader(txt);
//声明一个字符串
String OOO=null;
//getResponseCode 方法会返回HTTP访问状态200为成功,返回-1则是http连接失败
if(conn.getResponseCode()==200) {
//循环BufferedReader readLine 方法为获取下一条数据 如果返回的数据不等于null则是有数据,就把他遍历循环加进刚才声明的字符串中 否则为 null则是最后一条数据则不显示
while((Sec.readLine())!=null) {
OOO+=Sec.readLine();
}
//调试输出OOO new String(OOO.getBytes("GBK"),"UTF-8" 这个方法是编码转换 虽然网页中给出的编码是UTF-8但是返回的数据却是乱码 解析为GBK就能显示 不知道怎么回事
System.out.println(new String(OOO.getBytes("GBK"),"UTF-8"));
}else {
System.out.println("读取失败");
}
System.out.println("输出完成");
}catch(Exception e) {
e.printStackTrace();
}
}
}
以上就是本人自己的建议理解以及Get的访问方法 关于编码转换的问题还求大神解答 谢谢谢谢谢谢