java 读取外网url问题

xiaoxiao2021-02-28  99

起初用httpurl读取外网静态json文件,总是返回状态500,当服务器tomcat重新启动就没有问题了,但是过些时间又不行了, 后来查看浏览器的请求头,用gzip格式压缩后,回来界面发现就没这个问题了, 原因还不知道,但问题总算解决了  

      private static String readhttp_info(String httpUrl) {

    StringBuffer strBuffer = new StringBuffer("");               HttpURLConnection httpURLConnection = null;               InputStream inputStream = null;               BufferedReader rufferedReader = null;               //用于解码               GZIPInputStream gzin = null;                              try {                   URL serverUrl = new URL(httpUrl);                   httpURLConnection = (HttpURLConnection) serverUrl.openConnection();                   //设置请求的头信息                   httpURLConnection.setRequestProperty("Accept-charset", "utf-8");                   httpURLConnection.setRequestProperty("Accept", "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01");                   httpURLConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");                   httpURLConnection.setRequestProperty("Accept-Language", "zh-CN,en-US;q=0.8,zh;q=0.5,en;q=0.3");                   httpURLConnection.setRequestProperty("Connection","keep-alive");                   httpURLConnection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0");                   System.out.println("请求url的响应状态码:"+httpURLConnection.getResponseCode());                   //状态码200是请求成功                   if (HttpURLConnection.HTTP_OK == httpURLConnection.getResponseCode()) {                       inputStream = httpURLConnection.getInputStream();                       System.out.println("服务器响应的内容的编码格式:"+httpURLConnection.getContentEncoding());                       //转码                       gzin = new GZIPInputStream(inputStream);                       rufferedReader = new BufferedReader(new InputStreamReader(                               gzin,"utf-8"));                       String str = null;                       while ((str = rufferedReader.readLine()) != null) {                           strBuffer.append(str);                           strBuffer.append("\r\n");                       }                        System.out.println(strBuffer);                  }               }catch(Exception e) {                   e.printStackTrace();               }finally{                   httpURLConnection.disconnect();                   //这里把相关的流也关闭吧,我这里就不写了               }                            return strBuffer.toString();    }
转载请注明原文地址: https://www.6miu.com/read-70608.html

最新回复(0)