我按照教程来却发现总是报错;
代码如下
private String url; //请求的地址
public httpThread(String url) {
this.url = url;
}
public String doGet() {
URL httpUrl = null;
try {
httpUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
HttpURLConnection httpURLConnection;
httpURLConnection = (HttpURLConnection) new httpUrl.openConnection();
try {
httpURLConnection.setRequestMethod("GET"); //请求get方法
} catch (ProtocolException e) {
e.printStackTrace();
}
httpURLConnection.setReadTimeout(5000);
//接受返回来的数据
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
String str;
StringBuffer sb = new StringBuffer();
try {
while ((str = reader.readLine()) != null) {
sb.append(str);
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
![图片描述][2]
이게 무슨 튜토리얼인가요? 브라우저를 사용하여 요청이 작동하는지 확인하세요. 작성자가 글을 쓸 때는 액세스 권한이 있었지만 나중에는 액세스 권한이 없었을 수도 있습니다.
httpUrl 앞에
new
가 있는 이유는 무엇인가요?으아악
새로 삭제하는 방법입니다
으아악
"//반환된 데이터 수락"까지 처음 몇 문장을 위와 같이 변경하고 다시 살펴보세요.
두 가지 질문, 하나, 왜 메소드를 호출하기 전에 새로 추가합니까? 오류가 보고되면 마우스를 위로 올리거나 커서를 올려놓고 Ctrl+F1을 누르면 대부분의 경우 원인을 알 수 있습니다
둘째, try 코드 외부의 변수입니다. 블록은 처음에는 null이고 try에서 값이 할당됩니다. catch 코드 블록은 예외를 제대로 처리하지 못합니다. 그런 다음 나중에 변수를 참조하는 메서드를 호출하면 NullPointException이 발생합니다. 이것은 httpUrl 객체이거나 try.에 해당 문장을 작성합니다. 문제가 발생하면 실행하지 마세요. 간단히 말해서 여기서 예외 처리는 무엇입니까? 초보자들은 예외 처리를 제대로 배워야 하고, 댓글 쓰기 같은 좋은 습관을 길러야 합니다. 문제를 일으키고 로그를 기록하고 던지기 위해 printStackTrace를 사용하지 마십시오. 그렇지 않으면 귀하의 코드가 향후 생산 환경에 있게 될 것입니다. 운영 및 유지 관리는 모두 텔레파시에 관한 것이지 죽도록 꾸짖는 것이 아닙니다.