JavaTM Platform
Standard Ed. 6

java.net
クラス HttpURLConnection

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

public abstract class HttpURLConnection
extends URLConnection

HTTP 固有の機能をサポートする URLConnection です。詳細については、仕様を参照してください。

単一の要求を行う際には個々の HttpURLConnection インスタンスが使用されますが、その背後の HTTP サーバーへのネットワーク接続は、ほかのインスタンスと透過的に共有される可能性があります。要求後、HttpURLConnection の InputStream または OutputStream 上で close() メソッドを呼び出すと、そのインスタンスに関連付けられていたネットワークリソースが解放される可能性がありますが、共有されている持続接続への影響はまったくありません。disconnect() メソッドを呼び出した場合、持続接続がその時点でアイドル状態になっていれば、使用していたソケットがクローズされる可能性があります。

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

フィールドの概要
protected  int chunkLength
          出力時にチャンクエンコーディングストリーミングモードを使用する場合のチャンク長。
protected  int fixedContentLength
          固定長ストリーミングモードを使用する場合の固定コンテンツ長。
static int HTTP_ACCEPTED
          HTTP Status-Code 202:受け入れられました。
static int HTTP_BAD_GATEWAY
          HTTP Status-Code 502:不正なゲートウェイ。
static int HTTP_BAD_METHOD
          HTTP Status-Code 405:メソッドが許可されていません。
static int HTTP_BAD_REQUEST
          HTTP Status-Code 400:不正な要求。
static int HTTP_CLIENT_TIMEOUT
          HTTP Status-Code 408:要求がタイムアウトしました。
static int HTTP_CONFLICT
          HTTP Status-Code 409:衝突しています。
static int HTTP_CREATED
          HTTP Status-Code 201:作成されました。
static int HTTP_ENTITY_TOO_LARGE
          HTTP Status-Code 413:要求のエンティティーが大きすぎます。
static int HTTP_FORBIDDEN
          HTTP Status-Code 403:禁止されています。
static int HTTP_GATEWAY_TIMEOUT
          HTTP Status-Code 504:ゲートウェイがタイムアウトしました。
static int HTTP_GONE
          HTTP Status-Code 410:存在しません。
static int HTTP_INTERNAL_ERROR
          HTTP Status-Code 500:内部サーバーエラー。
static int HTTP_LENGTH_REQUIRED
          HTTP Status-Code 411:長さが必要です。
static int HTTP_MOVED_PERM
          HTTP Status-Code 301:永続的に移動されました。
static int HTTP_MOVED_TEMP
          HTTP Status-Code 302:一時的なリダイレクト。
static int HTTP_MULT_CHOICE
          HTTP Status-Code 300:複数の選択肢があります。
static int HTTP_NO_CONTENT
          HTTP Status-Code 204:コンテンツがありません。
static int HTTP_NOT_ACCEPTABLE
          HTTP Status-Code 406:受け入れられません。
static int HTTP_NOT_AUTHORITATIVE
          HTTP Status-Code 203:信頼できない情報です。
static int HTTP_NOT_FOUND
          HTTP Status-Code 404:見つかりません。
static int HTTP_NOT_IMPLEMENTED
          HTTP Status-Code 501:実装されていません。
static int HTTP_NOT_MODIFIED
          HTTP Status-Code 304:変更されていません。
static int HTTP_OK
          HTTP Status-Code 200:OK です。
static int HTTP_PARTIAL
          HTTP Status-Code 206:部分的なコンテンツ。
static int HTTP_PAYMENT_REQUIRED
          HTTP Status-Code 402:支払いの必要があります。
static int HTTP_PRECON_FAILED
          HTTP Status-Code 412:前提条件が満たされていません。
static int HTTP_PROXY_AUTH
          HTTP Status-Code 407:プロキシ認証が必要です。
static int HTTP_REQ_TOO_LONG
          HTTP Status-Code 414:要求の URI が大きすぎます。
static int HTTP_RESET
          HTTP Status-Code 205:コンテンツをリセットします。
static int HTTP_SEE_OTHER
          HTTP Status-Code 303:ほかを参照してください。
static int HTTP_SERVER_ERROR
          推奨されていません。 間違ったフィールドであり、存在するべきではありせん。
static int HTTP_UNAUTHORIZED
          HTTP Status-Code 401:承認されていません。
static int HTTP_UNAVAILABLE
          HTTP Status-Code 503:サービスが使用不可能です。
static int HTTP_UNSUPPORTED_TYPE
          HTTP Status-Code 415:サポートされていないメディアタイプです。
static int HTTP_USE_PROXY
          HTTP Status-Code 305:プロキシを使用します。
static int HTTP_VERSION
          HTTP Status-Code 505:サポートされていない HTTP バージョンです。
protected  boolean instanceFollowRedirects
          true の場合、プロトコルは自動的にリダイレクトに従います。
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 リダイレクト (応答コード 3xx の要求) に、このクラスが自動的に従うべきかどうかを設定します。
 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 は、出力時のチャンクエンコーディングが無効であることを意味します。

導入されたバージョン:
1.5

fixedContentLength

protected int fixedContentLength
固定長ストリーミングモードを使用する場合の固定コンテンツ長。値 -1 は、出力時の固定長ストリーミングモードが無効であることを意味します。

導入されたバージョン:
1.5

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 Status-Code 200:OK です。

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

HTTP_CREATED

public static final int HTTP_CREATED
HTTP Status-Code 201:作成されました。

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

HTTP_ACCEPTED

public static final int HTTP_ACCEPTED
HTTP Status-Code 202:受け入れられました。

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

HTTP_NOT_AUTHORITATIVE

public static final int HTTP_NOT_AUTHORITATIVE
HTTP Status-Code 203:信頼できない情報です。

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

HTTP_NO_CONTENT

public static final int HTTP_NO_CONTENT
HTTP Status-Code 204:コンテンツがありません。

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

HTTP_RESET

public static final int HTTP_RESET
HTTP Status-Code 205:コンテンツをリセットします。

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

HTTP_PARTIAL

public static final int HTTP_PARTIAL
HTTP Status-Code 206:部分的なコンテンツ。

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

HTTP_MULT_CHOICE

public static final int HTTP_MULT_CHOICE
HTTP Status-Code 300:複数の選択肢があります。

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

HTTP_MOVED_PERM

public static final int HTTP_MOVED_PERM
HTTP Status-Code 301:永続的に移動されました。

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

HTTP_MOVED_TEMP

public static final int HTTP_MOVED_TEMP
HTTP Status-Code 302:一時的なリダイレクト。

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

HTTP_SEE_OTHER

public static final int HTTP_SEE_OTHER
HTTP Status-Code 303:ほかを参照してください。

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

HTTP_NOT_MODIFIED

public static final int HTTP_NOT_MODIFIED
HTTP Status-Code 304:変更されていません。

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

HTTP_USE_PROXY

public static final int HTTP_USE_PROXY
HTTP Status-Code 305:プロキシを使用します。

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

HTTP_BAD_REQUEST

public static final int HTTP_BAD_REQUEST
HTTP Status-Code 400:不正な要求。

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

HTTP_UNAUTHORIZED

public static final int HTTP_UNAUTHORIZED
HTTP Status-Code 401:承認されていません。

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

HTTP_PAYMENT_REQUIRED

public static final int HTTP_PAYMENT_REQUIRED
HTTP Status-Code 402:支払いの必要があります。

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

HTTP_FORBIDDEN

public static final int HTTP_FORBIDDEN
HTTP Status-Code 403:禁止されています。

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

HTTP_NOT_FOUND

public static final int HTTP_NOT_FOUND
HTTP Status-Code 404:見つかりません。

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

HTTP_BAD_METHOD

public static final int HTTP_BAD_METHOD
HTTP Status-Code 405:メソッドが許可されていません。

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

HTTP_NOT_ACCEPTABLE

public static final int HTTP_NOT_ACCEPTABLE
HTTP Status-Code 406:受け入れられません。

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

HTTP_PROXY_AUTH

public static final int HTTP_PROXY_AUTH
HTTP Status-Code 407:プロキシ認証が必要です。

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

HTTP_CLIENT_TIMEOUT

public static final int HTTP_CLIENT_TIMEOUT
HTTP Status-Code 408:要求がタイムアウトしました。

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

HTTP_CONFLICT

public static final int HTTP_CONFLICT
HTTP Status-Code 409:衝突しています。

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

HTTP_GONE

public static final int HTTP_GONE
HTTP Status-Code 410:存在しません。

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

HTTP_LENGTH_REQUIRED

public static final int HTTP_LENGTH_REQUIRED
HTTP Status-Code 411:長さが必要です。

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

HTTP_PRECON_FAILED

public static final int HTTP_PRECON_FAILED
HTTP Status-Code 412:前提条件が満たされていません。

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

HTTP_ENTITY_TOO_LARGE

public static final int HTTP_ENTITY_TOO_LARGE
HTTP Status-Code 413:要求のエンティティーが大きすぎます。

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

HTTP_REQ_TOO_LONG

public static final int HTTP_REQ_TOO_LONG
HTTP Status-Code 414:要求の URI が大きすぎます。

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

HTTP_UNSUPPORTED_TYPE

public static final int HTTP_UNSUPPORTED_TYPE
HTTP Status-Code 415:サポートされていないメディアタイプです。

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

HTTP_SERVER_ERROR

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

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

HTTP_INTERNAL_ERROR

public static final int HTTP_INTERNAL_ERROR
HTTP Status-Code 500:内部サーバーエラー。

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

HTTP_NOT_IMPLEMENTED

public static final int HTTP_NOT_IMPLEMENTED
HTTP Status-Code 501:実装されていません。

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

HTTP_BAD_GATEWAY

public static final int HTTP_BAD_GATEWAY
HTTP Status-Code 502:不正なゲートウェイ。

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

HTTP_UNAVAILABLE

public static final int HTTP_UNAVAILABLE
HTTP Status-Code 503:サービスが使用不可能です。

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

HTTP_GATEWAY_TIMEOUT

public static final int HTTP_GATEWAY_TIMEOUT
HTTP Status-Code 504:ゲートウェイがタイムアウトしました。

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

HTTP_VERSION

public static final int HTTP_VERSION
HTTP Status-Code 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 より小さいコンテンツ長が指定された場合
導入されたバージョン:
1.5
関連項目:
setChunkedStreamingMode(int)

setChunkedStreamingMode

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

出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読み取り時に HttpRetryException がスローされます。この例外を調べれば、エラーの詳細がわかります。

このメソッドは、URLConnection の接続前に呼び出してください。

パラメータ:
chunklen - 各チャンク内に書き込むバイト数。chunklen が 0 以下の場合はデフォルト値が使用される
例外:
IllegalStateException - URLConnection がすでに接続されている場合、または別のストリーミングモードがすでに有効になっている場合
導入されたバージョン:
1.5
関連項目:
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 リダイレクト (応答コード 3xx の要求) に、このクラスが自動的に従うべきかどうかを設定します。デフォルトは 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
導入されたバージョン:
1.3
関連項目:
instanceFollowRedirects, getInstanceFollowRedirects()

getInstanceFollowRedirects

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

戻り値:
この HttpURLConnectioninstanceFollowRedirects フィールド値
導入されたバージョン:
1.3
関連項目:
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 日 GMT からのミリ秒数です。

この形式の 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 つあります。URLConnection 経由で取得されたオブジェクトのキャッシュを保護することと、受信者が特定の URL について知る権利をチェックすることです。最初の場合、アクセス権はオブジェクトを取得したあとで取得されます。たとえば、HTTP 接続の場合、これは、データの最終的な取得元となったホストに接続するためのアクセス権を表します。2 番目の場合、アクセス権は接続の前に取得およびテストされます。

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

getErrorStream

public InputStream getErrorStream()
接続が失敗したが、それにもかかわらずサーバーから有用なデータを送信されてきた場合に、エラーストリームを返します。典型的な例としては、HTTP サーバーが 404 で応答し、それによって接続内で FileNotFoundException がスローされたが、そのサーバーから対処策を含む HTML ヘルプページが送信されてきた、といった場合です。  

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

戻り値:
エラーストリームが存在する場合はそのストリーム。エラーが発生しなかった場合、接続が確立されていない場合、またはサーバーが有用なデータを送信しなかった場合は null

JavaTM Platform
Standard Ed. 6

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

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