URL类里面的方法openConnection方法报错

图片描述我按照教程来却发现总是报错;
代码如下
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

回答:

    public URLConnection openConnection() throws java.io.IOException {

return handler.openConnection(this);

}

这就是个方法你把new去掉啊

回答:

URL httpUrl = null;

HttpURLConnection httpURLConnection;

try {

httpUrl = new URL(url);

httpURLConnection = (HttpURLConnection) httpUrl.openConnection();

httpURLConnection.setRequestMethod("GET"); //请求get方法

httpURLConnection.setReadTimeout(5000);

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (ProtocolException e) {

e.printStackTrace();

}

前几句一直到"//接受返回来的数据"之前改成上面的再看看
两个问题,其一,调用方法前面为什么加个new,你要日天吗,ide报的错,鼠标移上去或者光标放上去Ctrl+F1好好看看是什么内容,大部分情况都可以看到原因
其二,try代码块外面的变量初始为null,在try里赋值,catch代码块又没有妥善处理异常,只是用printStackTrace打一下异常,那你后面调用这个引用变量的方法时,会有报NullPointException的情况,说的就是httpUrl这个对象,要么把那几句写到try里,出错就别运行,要吗在外面调用时候先验证是不是null,总之这里异常处理的不好,新手学习一定要好好学习妥善处理好异常,和你写注释一样养成良好的习惯,你后面的代码我都没再改了,另外我也没写处理的代码,但思路就是这样,不要printStackTrace了事,该log的log,该throw的throw,否则以后你的代码搞到生产环境,运维全靠心灵感应了,不是被人骂死。

以上是 URL类里面的方法openConnection方法报错 的全部内容, 来源链接: utcz.com/a/167590.html

回到顶部