JavaTM 2 Platform
Standard Ed. 5.0

java.net
クラス HttpURLConnection

java.lang.Object
  上位を拡張 java.net.URLConnection
      上位を拡張 java.net.HttpURLConnection
直系の既知のサブクラス:
HttpsURLConnection

public abstract class HttpURLConnection
extends URLConnection

HTTP 特有の機能をサポートする URLConnection です。詳細は、「HTTP - Hypertext Transfer Protocol」を参照してください。

各 HttpURLConnection インスタンスを使用して単一の要求を作成しますが、HTTP サーバへのネットワーク接続はほかのインスタンスと透過的に共有されることがあります。要求後、HttpURLConnection の InputStream または OutputStream で close() メソッドを呼び出すと、このインスタンスに関連したネットワークリソースが解放されますが、共有持続接続に影響はありません。disconnect() メソッドを呼び出すと、持続接続がその時アイドル状態であればソケットが閉じることがあります。

導入されたバージョン:
JDK1.1
関連項目:
disconnect()

フィールドの概要
protected  int chunkLength
          出力にチャンクされたエンコーディングのストリーミングモードを使用する場合のチャンクの長さです。
protected  int fixedContentLength
          固定長のストリーミングモードを使用する場合の固定コンテンツ長です。
static int HTTP_ACCEPTED
          HTTP ステータスコード 202: 許可されました。
static int HTTP_BAD_GATEWAY
          HTTP ステータスコード 502: 誤ったゲートウェイです。
static int HTTP_BAD_METHOD
          HTTP ステータスコード 405: メソッドは許可されません。
static int HTTP_BAD_REQUEST
          HTTP ステータスコード 400: 不当な要求です。
static int HTTP_CLIENT_TIMEOUT
          HTTP ステータスコード 408: 要求が時間切れです。
static int HTTP_CONFLICT
          HTTP ステータスコード 409: 重複しています。
static int HTTP_CREATED
          HTTP ステータスコード 201: 作成されました。
static int HTTP_ENTITY_TOO_LARGE
          HTTP ステータスコード 413: 要求エンティティが長すぎます。
static int HTTP_FORBIDDEN
          HTTP ステータスコード 403: 禁止されています。
static int HTTP_GATEWAY_TIMEOUT
          HTTP ステータスコード 504: ゲートウェイが時間切れです。
static int HTTP_GONE
          HTTP ステータスコード 410: 存在しません。
static int HTTP_INTERNAL_ERROR
          HTTP ステータスコード 500: 内部サーバエラーです。
static int HTTP_LENGTH_REQUIRED
          HTTP ステータスコード 411: 長さが必要です。
static int HTTP_MOVED_PERM
          HTTP ステータスコード 301: 永続的に移動されました。
static int HTTP_MOVED_TEMP
          HTTP ステータスコード 302: 一時的に切り替えます。
static int HTTP_MULT_CHOICE
          HTTP ステータスコード 300: 複数選択されています。
static int HTTP_NO_CONTENT
          HTTP ステータスコード 204: コンテンツがありません。
static int HTTP_NOT_ACCEPTABLE
          HTTP ステータスコード 406: 許容されません。
static int HTTP_NOT_AUTHORITATIVE
          HTTP ステータスコード 203: 不当な情報です。
static int HTTP_NOT_FOUND
          HTTP ステータスコード 404: 見つかりませんでした。
static int HTTP_NOT_IMPLEMENTED
          HTTP ステータスコード 501: 実装されていません。
static int HTTP_NOT_MODIFIED
          HTTP ステータスコード 304: 修正されませんでした。
static int HTTP_OK
          HTTP ステータスコード 200: OK です。
static int HTTP_PARTIAL
          HTTP ステータスコード 206: 部分的なコンテンツです。
static int HTTP_PAYMENT_REQUIRED
          HTTP ステータスコード 402: 支払いが必要です。
static int HTTP_PRECON_FAILED
          HTTP ステータスコード 412: 前提条件が正しくありません。
static int HTTP_PROXY_AUTH
          HTTP ステータスコード 407: プロキシの認証が必要です。
static int HTTP_REQ_TOO_LONG
          HTTP ステータスコード 414: 要求 URL が長すぎます。
static int HTTP_RESET
          HTTP ステータスコード 205: コンテンツをリセットします。
static int HTTP_SEE_OTHER
          HTTP ステータスコード 303: ほかを参照してください。
static int HTTP_SERVER_ERROR
          推奨されていません。 間違ったフィールドであり、存在するべきではありせん。
static int HTTP_UNAUTHORIZED
          HTTP ステータスコード 401: 認証されませんでした。
static int HTTP_UNAVAILABLE
          HTTP ステータスコード 503: サービスが利用できません。
static int HTTP_UNSUPPORTED_TYPE
          HTTP ステータスコード 415: サポートされないメディア型です。
static int HTTP_USE_PROXY
          HTTP ステータスコード 305: プロキシを使用してください。
static int HTTP_VERSION
          HTTP ステータスコード 505: HTTP バージョンがサポートされていません。
protected  boolean instanceFollowRedirects
          プロトコルが自動的にリダイレクトする場合は true、自動的にリダイレクトしない場合は false です。
protected  String method
          HTTP メソッド (GET、POST、PUT など) です。
protected  int responseCode
          3 桁の HTTP ステータスコードを表す int です。
protected  String responseMessage
          HTTP 応答メッセージです。
 
クラス java.net.URLConnection から継承されたフィールド
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
 
コンストラクタの概要
protected HttpURLConnection(URL u)
          HttpURLConnection のコンストラクタです。
 
メソッドの概要
abstract  void disconnect()
          サーバへのほかの要求が今後発生しそうにないことを示します。
 InputStream getErrorStream()
          接続には失敗してもサーバが有効なデータを送ってきた場合に、エラーストリームを返します。
static boolean getFollowRedirects()
          HTTP リダイレクト (3xx) に自動的に従うかどうかを示す boolean を返します。
 String getHeaderField(int n)
          n 番目のヘッダフィールドの値を返します。
 long getHeaderFieldDate(String name, long Default)
          指定されたフィールドを日付として構文解析した値を返します。
 String getHeaderFieldKey(int n)
          n 番目のヘッダフィールドのキーを返します。
 boolean getInstanceFollowRedirects()
          この HttpURLConnectioninstanceFollowRedirects フィールド値を返します。
 Permission getPermission()
          このオブジェクトが表す接続の実行に必要なアクセス権を表す、Permission オブジェクトを返します。
 String getRequestMethod()
          要求メソッドを取得します。
 int getResponseCode()
          HTTP 応答メッセージからステータスコードを取得します。
 String getResponseMessage()
          サーバからの応答コードに HTTP 応答メッセージが含まれている場合、これを返します。
 void setChunkedStreamingMode(int chunklen)
          このメソッドは、コンテンツ長が事前にわからない場合に、内部バッファ処理を行わずに HTTP 要求本体のストリーミングを有効にするために使用します。
 void setFixedLengthStreamingMode(int contentLength)
          このメソッドは、コンテンツ長が事前にわかっている場合に、内部バッファ処理を行わずに HTTP 要求本体のストリーミングを有効にするために使用します。
static void setFollowRedirects(boolean set)
          このクラスが、HTTP リダイレクト (応答コード 300 番台の要求) に自動的に従うかどうかを設定します。
 void setInstanceFollowRedirects(boolean followRedirects)
          HTTP リダイレクト (応答コード 3xx の要求) を、この HttpURLConnection インスタンスで自動に従うかどうかを設定します。
 void setRequestMethod(String method)
          URL 要求のメソッドを次のどれかに設定します。
abstract  boolean usingProxy()
          接続でプロキシを使用するかどうかを表します。
 
クラス java.net.URLConnection から継承されたメソッド
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

method

protected String method
HTTP メソッド (GET、POST、PUT など) です。


chunkLength

protected int chunkLength
出力にチャンクされたエンコーディングのストリーミングモードを使用する場合のチャンクの長さです。値 -1 は、チャンクされたエンコーディングが出力に対して無効になっていることを示します。


fixedContentLength

protected int fixedContentLength
固定長のストリーミングモードを使用する場合の固定コンテンツ長です。値 -1 は、固定長のストリーミングモードが出力に対して無効になっていることを示します。


responseCode

protected int responseCode
3 桁の HTTP ステータスコードを表す int です。


responseMessage

protected String responseMessage
HTTP 応答メッセージです。


instanceFollowRedirects

protected boolean instanceFollowRedirects
プロトコルが自動的にリダイレクトする場合は true、自動的にリダイレクトしない場合は false です。

このフィールド値を設定するには setInstanceFollowRedirects メソッドを使用します。戻り値を取得するには getInstanceFollowRedirects メソッドを使用します。

HttpURLConnection の構築の際、デフォルト値は static followRedirects の値に基づきます。

関連項目:
setInstanceFollowRedirects(boolean), getInstanceFollowRedirects(), setFollowRedirects(boolean)

HTTP_OK

public static final int HTTP_OK
HTTP ステータスコード 200: OK です。

関連項目:
定数フィールド値

HTTP_CREATED

public static final int HTTP_CREATED
HTTP ステータスコード 201: 作成されました。

関連項目:
定数フィールド値

HTTP_ACCEPTED

public static final int HTTP_ACCEPTED
HTTP ステータスコード 202: 許可されました。

関連項目:
定数フィールド値

HTTP_NOT_AUTHORITATIVE

public static final int HTTP_NOT_AUTHORITATIVE
HTTP ステータスコード 203: 不当な情報です。

関連項目:
定数フィールド値

HTTP_NO_CONTENT

public static final int HTTP_NO_CONTENT
HTTP ステータスコード 204: コンテンツがありません。

関連項目:
定数フィールド値

HTTP_RESET

public static final int HTTP_RESET
HTTP ステータスコード 205: コンテンツをリセットします。

関連項目:
定数フィールド値

HTTP_PARTIAL

public static final int HTTP_PARTIAL
HTTP ステータスコード 206: 部分的なコンテンツです。

関連項目:
定数フィールド値

HTTP_MULT_CHOICE

public static final int HTTP_MULT_CHOICE
HTTP ステータスコード 300: 複数選択されています。

関連項目:
定数フィールド値

HTTP_MOVED_PERM

public static final int HTTP_MOVED_PERM
HTTP ステータスコード 301: 永続的に移動されました。

関連項目:
定数フィールド値

HTTP_MOVED_TEMP

public static final int HTTP_MOVED_TEMP
HTTP ステータスコード 302: 一時的に切り替えます。

関連項目:
定数フィールド値

HTTP_SEE_OTHER

public static final int HTTP_SEE_OTHER
HTTP ステータスコード 303: ほかを参照してください。

関連項目:
定数フィールド値

HTTP_NOT_MODIFIED

public static final int HTTP_NOT_MODIFIED
HTTP ステータスコード 304: 修正されませんでした。

関連項目:
定数フィールド値

HTTP_USE_PROXY

public static final int HTTP_USE_PROXY
HTTP ステータスコード 305: プロキシを使用してください。

関連項目:
定数フィールド値

HTTP_BAD_REQUEST

public static final int HTTP_BAD_REQUEST
HTTP ステータスコード 400: 不当な要求です。

関連項目:
定数フィールド値

HTTP_UNAUTHORIZED

public static final int HTTP_UNAUTHORIZED
HTTP ステータスコード 401: 認証されませんでした。

関連項目:
定数フィールド値

HTTP_PAYMENT_REQUIRED

public static final int HTTP_PAYMENT_REQUIRED
HTTP ステータスコード 402: 支払いが必要です。

関連項目:
定数フィールド値

HTTP_FORBIDDEN

public static final int HTTP_FORBIDDEN
HTTP ステータスコード 403: 禁止されています。

関連項目:
定数フィールド値

HTTP_NOT_FOUND

public static final int HTTP_NOT_FOUND
HTTP ステータスコード 404: 見つかりませんでした。

関連項目:
定数フィールド値

HTTP_BAD_METHOD

public static final int HTTP_BAD_METHOD
HTTP ステータスコード 405: メソッドは許可されません。

関連項目:
定数フィールド値

HTTP_NOT_ACCEPTABLE

public static final int HTTP_NOT_ACCEPTABLE
HTTP ステータスコード 406: 許容されません。

関連項目:
定数フィールド値

HTTP_PROXY_AUTH

public static final int HTTP_PROXY_AUTH
HTTP ステータスコード 407: プロキシの認証が必要です。

関連項目:
定数フィールド値

HTTP_CLIENT_TIMEOUT

public static final int HTTP_CLIENT_TIMEOUT
HTTP ステータスコード 408: 要求が時間切れです。

関連項目:
定数フィールド値

HTTP_CONFLICT

public static final int HTTP_CONFLICT
HTTP ステータスコード 409: 重複しています。

関連項目:
定数フィールド値

HTTP_GONE

public static final int HTTP_GONE
HTTP ステータスコード 410: 存在しません。

関連項目:
定数フィールド値

HTTP_LENGTH_REQUIRED

public static final int HTTP_LENGTH_REQUIRED
HTTP ステータスコード 411: 長さが必要です。

関連項目:
定数フィールド値

HTTP_PRECON_FAILED

public static final int HTTP_PRECON_FAILED
HTTP ステータスコード 412: 前提条件が正しくありません。

関連項目:
定数フィールド値

HTTP_ENTITY_TOO_LARGE

public static final int HTTP_ENTITY_TOO_LARGE
HTTP ステータスコード 413: 要求エンティティが長すぎます。

関連項目:
定数フィールド値

HTTP_REQ_TOO_LONG

public static final int HTTP_REQ_TOO_LONG
HTTP ステータスコード 414: 要求 URL が長すぎます。

関連項目:
定数フィールド値

HTTP_UNSUPPORTED_TYPE

public static final int HTTP_UNSUPPORTED_TYPE
HTTP ステータスコード 415: サポートされないメディア型です。

関連項目:
定数フィールド値

HTTP_SERVER_ERROR

@Deprecated
public static final int HTTP_SERVER_ERROR
推奨されていません。 間違ったフィールドであり、存在するべきではありせん。
HTTP ステータスコード 500: 内部サーバエラーです。

関連項目:
定数フィールド値

HTTP_INTERNAL_ERROR

public static final int HTTP_INTERNAL_ERROR
HTTP ステータスコード 500: 内部サーバエラーです。

関連項目:
定数フィールド値

HTTP_NOT_IMPLEMENTED

public static final int HTTP_NOT_IMPLEMENTED
HTTP ステータスコード 501: 実装されていません。

関連項目:
定数フィールド値

HTTP_BAD_GATEWAY

public static final int HTTP_BAD_GATEWAY
HTTP ステータスコード 502: 誤ったゲートウェイです。

関連項目:
定数フィールド値

HTTP_UNAVAILABLE

public static final int HTTP_UNAVAILABLE
HTTP ステータスコード 503: サービスが利用できません。

関連項目:
定数フィールド値

HTTP_GATEWAY_TIMEOUT

public static final int HTTP_GATEWAY_TIMEOUT
HTTP ステータスコード 504: ゲートウェイが時間切れです。

関連項目:
定数フィールド値

HTTP_VERSION

public static final int HTTP_VERSION
HTTP ステータスコード 505: HTTP バージョンがサポートされていません。

関連項目:
定数フィールド値
コンストラクタの詳細

HttpURLConnection

protected HttpURLConnection(URL u)
HttpURLConnection のコンストラクタです。

パラメータ:
u - URL
メソッドの詳細

getHeaderFieldKey

public String getHeaderFieldKey(int n)
n 番目のヘッダフィールドのキーを返します。実装によっては、0 番目のヘッダフィールドが特別なもの (HTTP サーバにより返されたステータス行) として扱われます。この場合、getHeaderField(0) がステータス行を返しますが、getHeaderFieldKey(0) は null を返します。

オーバーライド:
クラス URLConnection 内の getHeaderFieldKey
パラメータ:
n - インデックス (n >=0)
戻り値:
n 番目のヘッダフィールドのキー。キーが存在しない場合は null

setFixedLengthStreamingMode

public void setFixedLengthStreamingMode(int contentLength)
このメソッドは、コンテンツ長が事前にわかっている場合に、内部バッファ処理を行わずに HTTP 要求本体のストリーミングを有効にするために使用します。

アプリケーションが指定されたコンテンツ長さを超えるデータを書き込もうとしたり、アプリケーションが指定された量を書き込む前に OutputStream を閉じたりした場合に、例外がスローされます。

出力ストリーミングが有効な場合、認証とリダイレクトを自動的に行うことはできません。認証やリダイレクトが必要な場合、応答を読み取っているときに HttpRetryException がスローされます。この例外について問い合わせることで、エラーの詳細を取得できます。

このメソッドは、URLConnection の接続前に呼び出す必要があります。

パラメータ:
contentLength - OutputStream へ書き込まれるバイト数
例外:
IllegalStateException - URLConnection がすでに接続されている、または異なるストリーミングモードがすでに有効になっている場合
IllegalArgumentException - 0 未満のコンテンツ長が指定されている場合
関連項目:
setChunkedStreamingMode(int)

setChunkedStreamingMode

public void setChunkedStreamingMode(int chunklen)
このメソッドは、コンテンツ長が事前にわからない場合に、内部バッファ処理を行わずに HTTP 要求本体のストリーミングを有効にするために使用します。このモードでは、チャンクされた転送エンコーディングを使用して要求本体が送信されます。すべての HTTP サーバでこのモードがサポートされているわけではないことに留意してください。

出力ストリーミングが有効な場合、認証とリダイレクトを自動的に行うことはできません。認証やリダイレクトが必要な場合、応答を読み取っているときに HttpRetryException がスローされます。この例外について問い合わせることで、エラーの詳細を取得できます。

このメソッドは、URLConnection の接続前に呼び出す必要があります。

パラメータ:
chunklen - 各チャンクに書き込まれるバイト数。chunklen が 0 以下の場合、デフォルト値が使用される
例外:
IllegalStateException - URLConnection がすでに接続されている、または異なるストリーミングモードがすでに有効になっている場合
関連項目:
setFixedLengthStreamingMode(int)

getHeaderField

public String getHeaderField(int n)
n 番目のヘッダフィールドの値を返します。実装によっては、0 番目のヘッダフィールドは特別なもの (HTTP サーバにより返されたステータス行) として扱われます。

このメソッドと getHeaderFieldKey メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダを繰り返し処理することができます。

オーバーライド:
クラス URLConnection 内の getHeaderField
パラメータ:
n - インデックス (n>=0)
戻り値:
n 番目のヘッダフィールドの値。値が存在しない場合は null
関連項目:
getHeaderFieldKey(int)

setFollowRedirects

public static void setFollowRedirects(boolean set)
このクラスが、HTTP リダイレクト (応答コード 300 番台の要求) に自動的に従うかどうかを設定します。デフォルトでは true です。アプレットは、この変数を変更できません。

セキュリティマネージャが存在する場合、このメソッドは最初にセキュリティマネージャの checkSetFactory メソッドを呼び出すことにより、この操作が許可されていることを確認します。この結果、SecurityException になることがあります。

パラメータ:
set - HTTP リダイレクトを行うかどうかを示す boolean
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkSetFactory メソッドがこの操作を許可しない場合
関連項目:
SecurityManager.checkSetFactory(), getFollowRedirects()

getFollowRedirects

public static boolean getFollowRedirects()
HTTP リダイレクト (3xx) に自動的に従うかどうかを示す boolean を返します。

戻り値:
HTTP リダイレクトに自動的に従う場合は true、そうでない場合は false
関連項目:
setFollowRedirects(boolean)

setInstanceFollowRedirects

public void setInstanceFollowRedirects(boolean followRedirects)
HTTP リダイレクト (応答コード 3xx の要求) を、この HttpURLConnection インスタンスで自動に従うかどうかを設定します。

デフォルトが true である、followRedirects からのデフォルト値

パラメータ:
followRedirects - HTTP リダイレクトを行うかどうかを示す boolean
関連項目:
instanceFollowRedirects, getInstanceFollowRedirects()

getInstanceFollowRedirects

public boolean getInstanceFollowRedirects()
この HttpURLConnectioninstanceFollowRedirects フィールド値を返します。

戻り値:
この HttpURLConnectioninstanceFollowRedirects フィールド値
関連項目:
instanceFollowRedirects, setInstanceFollowRedirects(boolean)

setRequestMethod

public void setRequestMethod(String method)
                      throws ProtocolException
URL 要求のメソッドを次のどれかに設定します。 これらのメソッドのうち、どれが有効であるかはプロトコルの制限によって決まります。デフォルトのメソッドは GET です。

パラメータ:
method - HTTP メソッド
例外:
ProtocolException - メソッドをリセットできない場合、または要求したメソッドが HTTP で無効である場合
関連項目:
getRequestMethod()

getRequestMethod

public String getRequestMethod()
要求メソッドを取得します。

戻り値:
HTTP 要求メソッド
関連項目:
setRequestMethod(java.lang.String)

getResponseCode

public int getResponseCode()
                    throws IOException
HTTP 応答メッセージからステータスコードを取得します。たとえば、
 HTTP/1.0 200 OK HTTP/1.0 401 Unauthorized 
というステータス行では、200 と 401 をそれぞれ返します。応答からコードを識別できない (応答が有効な HTTP でない) 場合は -1 を返します。

戻り値:
HTTP ステータスコード、または -1
例外:
IOException - サーバへの接続でエラーが発生した場合

getResponseMessage

public String getResponseMessage()
                          throws IOException
サーバからの応答コードに HTTP 応答メッセージが含まれている場合、これを返します。応答コードの例を次に示します。
 HTTP/1.0 200 OK HTTP/1.0 404 Not Found
「OK」と「Not Found」の文字列の部分をそれぞれ取り出します。応答コードが識別できない (有効な HTTP でない) 場合は null を返します。

戻り値:
HTTP 応答メッセージまたは null
例外:
IOException - サーバへの接続でエラーが発生した場合

getHeaderFieldDate

public long getHeaderFieldDate(String name,
                               long Default)
クラス URLConnection の記述:
指定されたフィールドを日付として構文解析した値を返します。指定されたフィールドが表すグリニッジ標準時 1970 年 1 月 1 日 から起算したミリ秒数が返されます。

この形式の getHeaderField が存在している理由は、一部の種類の接続 (http-ng など) が事前に構文解析してあるヘッダを持つためです。そのような種類の接続クラスでは、このメソッドをオーバーライドして構文解析を回避することができます。

オーバーライド:
クラス URLConnection 内の getHeaderFieldDate
パラメータ:
name - ヘッダフィールドの名前
Default - デフォルト値
戻り値:
日付として構文解析したフィールド値。フィールドがないか、またはフィールドの形式が不正な場合は Default 引数

disconnect

public abstract void disconnect()
サーバへのほかの要求が今後発生しそうにないことを示します。disconnect() の呼び出しにより、この HttpURLConnection インスタンスをほかの要求で再利用することは示しません。


usingProxy

public abstract boolean usingProxy()
接続でプロキシを使用するかどうかを表します。

戻り値:
接続でプロキシを使用するかどうかを表す boolean 型

getPermission

public Permission getPermission()
                         throws IOException
クラス URLConnection の記述:
このオブジェクトが表す接続の実行に必要なアクセス権を表す、Permission オブジェクトを返します。接続の実行にアクセス権が不要な場合、このメソッドは null を返します。デフォルトでは、このメソッドは java.security.AllPermission を返します。サブクラスでは、URL に接続するために必要なアクセス権をもっとも適切に表すアクセス権を返すように、このメソッドをオーバーライドします。たとえば、file: の URL を表す URLConnection では、java.io.FilePermission オブジェクトが返されます。

返されるアクセス権は、接続の状況に依存します。たとえば、接続前のアクセス権は、接続したあとのアクセス権とは異なる場合があります。たとえば、foo.com という HTTP サーバで、接続を別のホスト bar.com にリダイレクトしているとします。接続する前に connection によって返されるアクセス権は、foo.com への接続に必要なアクセス権です。一方、接続のあとで返されるアクセス権は、bar.com へのアクセス権になります。

アクセス権は、通常 2 つの目的に使います。URLConnections により取得したオブジェクトのキャッシュの保護、および受け側が特定の URL を知る権利の確認です。前者の場合、アクセス権はオブジェクトを取得した「あと」で取得されます。たとえば HTTP 接続では、データの最終的な入手先となるホストに接続するためのアクセス権を表します。後者の場合、アクセス権は接続の「前」に取得およびテストされます。

オーバーライド:
クラス URLConnection 内の getPermission
戻り値:
この URLConnection が表す接続のために必要なアクセス権を表す Permission オブジェクト
例外:
IOException - アクセス権の処理にネットワークまたはファイル入出力が必要なときに、処理中に例外が発生した場合

getErrorStream

public InputStream getErrorStream()
接続には失敗してもサーバが有効なデータを送ってきた場合に、エラーストリームを返します。よくある例は、HTTP サーバがコード 404 で応答したときに、接続に対しては FileNotFoundException がスローされますが、サーバから対処策を指示する HTML ヘルプページが送信される場合です。

このメソッドは、接続を開始しません。接続が確立されていない場合、接続中にサーバでエラーが発生しなかった場合、あるいはサーバでエラーが発生してもエラーのデータが送られなかった場合には、このメソッドは null を返します。これがデフォルトの動作です。

戻り値:
エラーストリーム。エラーがなかった場合、接続が確立されていない場合、あるいはサーバから有効なデータが送られなかった場合は null

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。