请问一下代码有隐秘性错误的地方吗?如下

import java.net.*;
import java.io.*;
public class myurl
{
   
   public static void main(String [] args)
   {
      myurl.getUrl("13...........");
   }
   
   public final static String getUrl(String phone) {
      String urlString = "";
      try
      {
         URL url = new URL("http://192........./login?phone2="+phone);
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection)
         {
            connection = (HttpURLConnection) urlConnection;
         }
         else
         {
            System.out.println("请输入 URL 地址");
         }
         BufferedReader in = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
         String current;
         while((current = in.readLine()) != null)
         {
            current.trim();
            urlString += current;
         }
         System.out.println(urlString);
      }catch(IOException e)
      {
         e.printStackTrace();
      }
      return urlString;
   }
}

2块省略号代表请无视一下,一个是手机号码,一个是IP地址

阅读 1.5k
1 个回答

2019-05-09 评论题主提到的流未关闭,若是1.7以下的,确实是问题,但1.7开始有tryBufferedReader是可以有自动关闭的,所以也还好,有AutoCloseable接口的嘛

==========-==============================分割线=========================================

大体一看呢,我个人觉得有以下几个问题吧,从上到下

  1. 这个虽然也许你的场景里,urlConnection 一定是HttpURLConnection,但是你这么写,还是有很大风险,下面那个else进入后只是打印了一句话,啥也没做,所以connection.getInputStream()可能出现空指针
if(urlConnection instanceof HttpURLConnection)
{
 connection = (HttpURLConnection) urlConnection;
}
 else
{
   System.out.println("请输入 URL 地址");
}
BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()));                                     
  1. 这个问题算是比较致命的吧,trim()方法是有返回值的,返回值才是最终去空格的结果,直接调用current.trim(),其实current本身没有任何改变
current.trim();
  1. 字符串在循环里叠加,最好不要用+,除非是可控次数并且次数较少的时候,一般来说还是用StringBufferStringBuilder效率更高点,更省资源
urlString += current;

差不多就这些了吧,仅供参考

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题