Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - HttpURLConnection getErrorStream()



Java HttpURLConnection getErrorStream() 方法在连接失败但服务器仍然发送了有用的数据时返回错误流。典型的例子是当 HTTP 服务器响应 404 时,这将导致在连接中抛出 FileNotFoundException,但服务器发送了一个 HTML 帮助页面,其中包含有关如何操作的建议。

此方法不会导致连接启动。如果连接未连接,或者服务器在连接过程中没有错误,或者服务器有错误但没有发送错误数据,则此方法将返回 null。这是默认值。

声明

以下是 java.net.HttpURLConnection.getErrorStream() 方法的声明

public InputStream getErrorStream()

参数

返回值

如果有错误流,则返回错误流;如果没有错误、连接未连接或服务器未发送任何有用的数据,则返回 null。

异常

示例 1

以下示例演示了如何使用 Java HttpURLConnection getErrorStream() 方法处理使用 https 协议的无效 url。在此示例中,我们正在创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 HttpURLConnection 实例。使用 getErrorStream(),我们检查服务器是否返回错误响应并打印出来。

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.com/index1.htm?language=en#j2se");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setConnectTimeout(1000);  
         urlConnection.connect();  
         System.out.println("Connected.");  
         if(urlConnection.getErrorStream() != null) {
            BufferedReader in = new BufferedReader(
               new InputStreamReader(urlConnection.getErrorStream()));
            String content = "";
            String current;
            while((current = in.readLine()) != null) {
               content += current;
            }
            System.out.println(content);
         }else {
            System.out.println("Error Stream is null");
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行以上程序,这将产生以下结果:

输出

Connected.
Error Stream is null

示例 2

以下示例演示了如何使用 Java HttpURLConnection getErrorStream() 方法处理使用 http 协议的无效 url。在此示例中,我们正在创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 HttpURLConnection 实例。使用 getErrorStream(),我们检查服务器是否返回错误响应并打印出来。

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.com/index1.htm?language=en#j2se");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setConnectTimeout(1000);  
         urlConnection.connect();  
         System.out.println("Connected.");  
         if(urlConnection.getErrorStream() != null) {
            BufferedReader in = new BufferedReader(
               new InputStreamReader(urlConnection.getErrorStream()));
            String content = "";
            String current;
            while((current = in.readLine()) != null) {
               content += current;
            }
            System.out.println(content);
         }else {
            System.out.println("Error Stream is null");
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行以上程序,这将产生以下结果:

输出

Connected.
Error Stream is null

示例 3

以下示例演示了如何使用 Java HttpURLConnection getErrorStream() 方法处理使用 http 协议的无效 url。在此示例中,我们正在创建 URL 类的实例。使用 url.openConnection() 方法,我们获取 HttpURLConnection 实例。使用 getErrorStream(),我们检查服务器是否返回错误响应并打印出来。

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://www.google.com/index1.htm");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setConnectTimeout(1000);  
         urlConnection.connect();  
         System.out.println("Connected.");  
         if(urlConnection.getErrorStream() != null) {
            BufferedReader in = new BufferedReader(
               new InputStreamReader(urlConnection.getErrorStream()));
            String content = "";
            String current;
            while((current = in.readLine()) != null) {
               content += current;
            }
            System.out.println(content);
         }else {
            System.out.println("Error Stream is null");
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

让我们编译并运行以上程序,这将产生以下结果:

输出

Connected.
Error Stream is null
java_httpurlconnection.htm
广告