JavaTM 2 Platform
Standard Ed. 5.0

java.net
クラス URLConnection

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

public abstract class URLConnection
extends Object

抽象クラス URLConnection は、アプリケーションと URL との間の通信リンクを表すすべてのクラスのスーパークラスです。このクラスのインスタンスを使用して、URL で参照するリソースの読み取りと書き込みの両方を行うことができます。一般に、URL への接続を作成する際には複数の手順が必要となります。

openConnection() connect()
リモートリソースへの接続に影響するパラメータを操作する リソースとの間で、クエリーヘッダフィールドおよびコンテンツをやり取りする
---------------------------->
時間
  1. URL に対して openConnection メソッドを呼び出すことによって、接続オブジェクトを作成する
  2. セットアップパラメータと一般要求プロパティを操作する
  3. connect メソッドを使用して、リモートオブジェクトへの実際の接続を確立する
  4. リモートオブジェクトが使用可能になる。リモートオブジェクトのヘッダフィールドと内容にアクセスできるようになる

セットアップパラメータを修正するには次のメソッドを使用します。

一般要求プロパティを修正するには次のメソッドを使用します。

AllowUserInteraction パラメータと UseCaches パラメータのデフォルト値を設定するには、setDefaultAllowUserInteraction メソッドと setDefaultUseCaches メソッドを使用します。

上記の両方の set メソッドには対応する get メソッドがあり、パラメータや一般要求プロパティの値を取得することができます。使用できるパラメータと一般要求プロパティは、プロトコルによって異なります。

リモートオブジェクトへの接続を確立したあと、ヘッダフィールドと内容にアクセスするには次のメソッドを使用します。

一部のヘッダフィールドは頻繁にアクセスされます。次のメソッドは、こうしたフィールドにアクセスする際に便利です。

getContentType メソッドは、リモートオブジェクトの型を判別するときに getContent メソッドによって使用されます。サブクラスでは、getContentType メソッドをオーバーライドすると便利なことがあります。

一般に、接続前のパラメータと一般要求プロパティは、無視してもかまいません。接続前のパラメータと一般要求プロパティのデフォルト値は、適切と思われる値に設定されます。このインタフェースの大部分のクライアントでよく使用されるメソッドは getInputStream メソッドと getContent メソッドの 2 つだけです。これらは URL クラスの便利なメソッドによってミラー化されます。

http 接続の要求プロパティとヘッダフィールドの詳細は、次のサイトを参照してください。

 http://www.ietf.org/rfc/rfc2068.txt 
fileNameMap に関する注意: JDK 1.1.6 より前のバージョンでは、URLConnectionfileNameMap フィールドは public でした。JDK 1.1.6 以降では、fileNameMap は private です。これへのアクセスに、アクセス用メソッドとして getFileNameMap、変更用メソッドとして setFileNameMap が追加されました。この変更については、互換性に関するページにも説明があります。 要求後に URLConnectionInputStream または OutputStream に対して close() メソッドを呼び出すと、このインスタンスに関連付けられたネットワークリソースが解放されるされることがあります。ただし、特別なプロトコル仕様によって別の動作が指定されている場合は例外です。

導入されたバージョン:
JDK1.0
関連項目:
URL.openConnection(), connect(), getContent(), getContentEncoding(), getContentLength(), getContentType(), getDate(), getExpiration(), getHeaderField(int), getHeaderField(java.lang.String), getInputStream(), getLastModified(), getOutputStream(), setAllowUserInteraction(boolean), setDefaultUseCaches(boolean), setDoInput(boolean), setDoOutput(boolean), setIfModifiedSince(long), setRequestProperty(java.lang.String, java.lang.String), setUseCaches(boolean)

フィールドの概要
protected  boolean allowUserInteraction
          true の場合、この URL はユーザとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されています。
protected  boolean connected
          false の場合、この接続オブジェクトは指定された URL への通信リンクを作成していません。
protected  boolean doInput
          この変数を設定するには setDoInput メソッドを使用します。
protected  boolean doOutput
          この変数を設定するには setDoOutput メソッドを使用します。
protected  long ifModifiedSince
          一部のプロトコルでは、特定の時刻よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。
protected  URL url
          URL は、World Wide Web 上にあるリモートオブジェクトを表します。
protected  boolean useCaches
          true の場合、プロトコルは可能な時にキャッシュ内のデータを使用することができます。
 
コンストラクタの概要
protected URLConnection(URL url)
          指定された URL への URL 接続を構築します。
 
メソッドの概要
 void addRequestProperty(String key, String value)
          キーと値のペアにより指定された一般要求プロパティを追加します。
abstract  void connect()
          この URL が参照するリソースへの通信リンクを確立します (通信リンクが確立されていない場合)。
 boolean getAllowUserInteraction()
          このオブジェクトの allowUserInteraction フィールド値を返します。
 int getConnectTimeout()
          接続タイムアウトの設定を返します。
 Object getContent()
          この URL 接続のコンテンツを取得します。
 Object getContent(Class[] classes)
          この URL 接続のコンテンツを取得します。
 String getContentEncoding()
          content-encoding ヘッダフィールドの値を返します。
 int getContentLength()
          content-length ヘッダフィールドの値を返します。
 String getContentType()
          content-type ヘッダフィールドの値を返します。
 long getDate()
          date ヘッダフィールドの値を返します。
static boolean getDefaultAllowUserInteraction()
          allowUserInteraction フィールドのデフォルト値を返します。
static String getDefaultRequestProperty(String key)
          推奨されていません。 URLConnection の該当インスタンスを取得したあとは、インスタンス固有の getRequestProperty を使用します。
 boolean getDefaultUseCaches()
          URLConnectionuseCaches フラグのデフォルト値を返します。
 boolean getDoInput()
          この URLConnectiondoInput フラグの値を返します。
 boolean getDoOutput()
          この URLConnectiondoOutput フラグの値を返します。
 long getExpiration()
          expires ヘッダフィールドの値を返します。
static FileNameMap getFileNameMap()
          データファイルからファイル名マップ (mimetable) をロードします。
 String getHeaderField(int n)
          n 番目のヘッダフィールドの値を返します。
 String getHeaderField(String name)
          指定されたヘッダフィールドの値を返します。
 long getHeaderFieldDate(String name, long Default)
          指定されたフィールドを日付として構文解析した値を返します。
 int getHeaderFieldInt(String name, int Default)
          指定されたフィールドを数値として構文解析した値を返します。
 String getHeaderFieldKey(int n)
          n 番目のヘッダフィールドのキーを返します。
 Map<String,List<String>> getHeaderFields()
          ヘッダフィールドの変更不可能なマップを返します。
 long getIfModifiedSince()
          このオブジェクトの ifModifiedSince フィールド値を返します。
 InputStream getInputStream()
          この接続からの入力を受け取る入力ストリームを返します。
 long getLastModified()
          last-modified ヘッダフィールドの値を返します。
 OutputStream getOutputStream()
          この接続に書き込みを行う出力ストリームを返します。
 Permission getPermission()
          このオブジェクトが表す接続の実行に必要なアクセス権を表す、Permission オブジェクトを返します。
 int getReadTimeout()
          読み取りタイムアウトの設定を返します。
 Map<String,List<String>> getRequestProperties()
          この接続の一般要求プロパティの変更不可能なマップを返します。
 String getRequestProperty(String key)
          この接続の指定された一般要求プロパティの値を返します。
 URL getURL()
          この URLConnectionURL フィールド値を返します。
 boolean getUseCaches()
          この URLConnectionuseCaches フィールド値を返します。
static String guessContentTypeFromName(String fname)
          URL の指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツ型を推測します。
static String guessContentTypeFromStream(InputStream is)
          入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。
 void setAllowUserInteraction(boolean allowuserinteraction)
          この URLConnectionallowUserInteraction フィールド値を設定します。
 void setConnectTimeout(int timeout)
          この URLConnection で参照されるリソースへの通信リンクを開くときに使用する、指定されたタイムアウト値を、ミリ秒単位で設定します。
static void setContentHandlerFactory(ContentHandlerFactory fac)
          アプリケーションの ContentHandlerFactory を設定します。
static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
          将来に作成されるすべての URLConnection オブジェクトの allowUserInteraction フィールドについて、デフォルト値を指定された値に設定します。
static void setDefaultRequestProperty(String key, String value)
          推奨されていません。 URLConnection の該当インスタンスを取得したあとは、インスタンス固有の setRequestProperty を使用します。このメソッドを呼び出しても、何も行われません。
 void setDefaultUseCaches(boolean defaultusecaches)
          useCaches フィールドのデフォルト値を、指定された値に設定します。
 void setDoInput(boolean doinput)
          この URLConnectiondoInput フィールド値を指定した値に設定します。
 void setDoOutput(boolean dooutput)
          この URLConnectiondoOutput フィールドの値を、指定された値に設定します。
static void setFileNameMap(FileNameMap map)
          FileNameMap を設定します。
 void setIfModifiedSince(long ifmodifiedsince)
          この URLConnectionifModifiedSince フィールド値を、指定された値に設定します。
 void setReadTimeout(int timeout)
          指定されたタイムアウトまでの読み取りタイムアウトをミリ秒単位で設定します。
 void setRequestProperty(String key, String value)
          一般要求プロパティを設定します。
 void setUseCaches(boolean usecaches)
          この URLConnectionuseCaches フィールドを、指定された値に設定します。
 String toString()
          この URL 接続の String 表現を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

url

protected URL url
URL は、World Wide Web 上にあるリモートオブジェクトを表します。このリモートオブジェクトに対して、接続を開きます。

このフィールドの値にアクセスするには、getURL メソッドを使用します。

この変数のデフォルト値は、URLConnection コンストラクタの URL 引数の値です。

関連項目:
getURL(), url

doInput

protected boolean doInput
この変数を設定するには setDoInput メソッドを使用します。この変数の値を取得するには getDoInput メソッドを使用します。

URL 接続を使用して、入力と出力を行うことができます。アプリケーションで URL 接続からデータの読み取りを行う際には、doInput フラグを true に設定します。

このフィールドのデフォルト値は true です。

関連項目:
getDoInput(), setDoInput(boolean)

doOutput

protected boolean doOutput
この変数を設定するには setDoOutput メソッドを使用します。この変数値を取得するには getDoOutput メソッドを使用します。

URL 接続を使用して、入力や出力を行うことができます。アプリケーションで URL 接続に書き込みを行う場合は、doOutput フラグを true に設定します。

このフィールドのデフォルト値は false です。

関連項目:
getDoOutput(), setDoOutput(boolean)

allowUserInteraction

protected boolean allowUserInteraction
true の場合、この URL はユーザとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されています。false の場合、ユーザとの対話処理は許可されていません。

このフィールドの値を設定するには setAllowUserInteraction メソッドを使用します。このフィールドの値を取得するには getAllowUserInteraction メソッドを使用します。 このフィールドのデフォルト値は、setDefaultAllowUserInteraction メソッドを最後に呼び出した時に引数に指定した値です。

関連項目:
getAllowUserInteraction(), setAllowUserInteraction(boolean), setDefaultAllowUserInteraction(boolean)

useCaches

protected boolean useCaches
true の場合、プロトコルは可能な時にキャッシュ内のデータを使用することができます。false の場合、プロトコルは常にオブジェクトの新しいコピーを取得する必要があります。

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

このフィールドのデフォルト値は、setDefaultUseCaches メソッドを最後に呼び出したときに指定した値です。

関連項目:
setUseCaches(boolean), getUseCaches(), setDefaultUseCaches(boolean)

ifModifiedSince

protected long ifModifiedSince
一部のプロトコルでは、特定の時刻よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。

0 以外の値は、1970 年 1 月 1 日 GMT から起算したミリ秒数を表します。この値よりもあとにオブジェクトが変更されている場合にだけ、オブジェクトがフェッチされます。

この変数を設定するには setIfModifiedSince メソッドを使用します。この変数値を取得するには getIfModifiedSince メソッドを使用します。

このフィールドのデフォルト値は 0 (常にオブジェクトをフェッチする) です。

関連項目:
getIfModifiedSince(), setIfModifiedSince(long)

connected

protected boolean connected
false の場合、この接続オブジェクトは指定された URL への通信リンクを作成していません。true の場合は、通信リンクが確立されています。

コンストラクタの詳細

URLConnection

protected URLConnection(URL url)
指定された URL への URL 接続を構築します。URL が参照するオブジェクトへの接続は作成しません。

パラメータ:
url - 指定された URL
メソッドの詳細

getFileNameMap

public static FileNameMap getFileNameMap()
データファイルからファイル名マップ (mimetable) をロードします。最初に、"content.types.user.table" プロパティで定義されたユーザ指定テーブルをロードしようとします。ロードできなかった場合、lib/content-types.properties の java ホームのデフォルトの組み込みテーブルをロードしようとします。

戻り値:
FileNameMap
導入されたバージョン:
1.2
関連項目:
setFileNameMap(java.net.FileNameMap)

setFileNameMap

public static void setFileNameMap(FileNameMap map)
FileNameMap を設定します。

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

パラメータ:
map - 設定する FileNameMap
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkSetFactory メソッドがこの操作を許可しない場合
導入されたバージョン:
1.2
関連項目:
SecurityManager.checkSetFactory(), getFileNameMap()

connect

public abstract void connect()
                      throws IOException
この URL が参照するリソースへの通信リンクを確立します (通信リンクが確立されていない場合)。

connect メソッドを呼び出したときに、接続がすでに確立されていれば (connected フィールドの値が true であれば)、メソッド呼び出しは無視されます。

URLConnection オブジェクトは 2 つの段階を踏みます。最初にオブジェクトが作成され、そのあと接続が確立されます。作成後、接続を確立する前に、さまざまなオプション (doInput や UseCaches など) を指定することができます。接続後にこれらのオプションを設定しようとするとエラーになります。接続に依存する操作 (getContentLength など) を行うと、必要に応じて接続が暗黙的に確立されます。

例外:
SocketTimeoutException - 接続を確立する前にタイムアウトになった場合
IOException - 接続の確立中に入出力エラーが発生した場合
関連項目:
connected, getConnectTimeout(), setConnectTimeout(int)

setConnectTimeout

public void setConnectTimeout(int timeout)
この URLConnection で参照されるリソースへの通信リンクを開くときに使用する、指定されたタイムアウト値を、ミリ秒単位で設定します。接続を確立する前にタイムアウトになる場合、java.net.SocketTimeoutException がスローされます。タイムアウトに 0 を指定すると、タイムアウトは無限と解釈されます。

このメソッドのいくつかの非標準実装では、指定されたタイムアウトが無視されることがあります。接続タイムアウトの設定を確認するには、getConnectTimeout() を呼び出してください。

パラメータ:
timeout - 接続タイムアウト値をミリ秒単位で指定する int
例外:
IllegalArgumentException - タイムアウトパラメータが負の場合
導入されたバージョン:
1.5
関連項目:
getConnectTimeout(), connect()

getConnectTimeout

public int getConnectTimeout()
接続タイムアウトの設定を返します。

このオプションが無効 (タイムアウトが無限) の場合は、0 を返します。

戻り値:
接続タイムアウト値をミリ秒単位で示す int
導入されたバージョン:
1.5
関連項目:
setConnectTimeout(int), connect()

setReadTimeout

public void setReadTimeout(int timeout)
指定されたタイムアウトまでの読み取りタイムアウトをミリ秒単位で設定します。0 以外の値は、リソースへの接続が確立されたときに入力ストリームから読み取る際のタイムアウトを指定します。データを読み取る準備ができる前にタイムアウトになる場合、java.net.SocketTimeoutException がスローされます。タイムアウトに 0 を指定すると、タイムアウトは無限と解釈されます。

このメソッドのいくつかの非標準実装では、指定されたタイムアウトが無視されることがあります。読み取りタイムアウトの設定を確認するには、getReadTimeout() を呼び出してください。

パラメータ:
timeout - 使用するタイムアウト値をミリ秒単位で指定する int
例外:
IllegalArgumentException - タイムアウトパラメータが負の場合
導入されたバージョン:
1.5
関連項目:
getReadTimeout(), InputStream.read()

getReadTimeout

public int getReadTimeout()
読み取りタイムアウトの設定を返します。このオプションが無効 (タイムアウトが無限) の場合は 0 を返します。

戻り値:
読み取りタイムアウト値をミリ秒単位で示す int
導入されたバージョン:
1.5
関連項目:
setReadTimeout(int), InputStream.read()

getURL

public URL getURL()
この URLConnectionURL フィールド値を返します。

戻り値:
この URLConnectionURL フィールド値
関連項目:
url

getContentLength

public int getContentLength()
content-length ヘッダフィールドの値を返します。

戻り値:
この接続の URL が参照するリソースのコンテンツサイズ。サイズが不明の場合は -1

getContentType

public String getContentType()
content-type ヘッダフィールドの値を返します。

戻り値:
URL が参照するリソースのコンテンツ形式。不明の場合は null
関連項目:
getHeaderField(java.lang.String)

getContentEncoding

public String getContentEncoding()
content-encoding ヘッダフィールドの値を返します。

戻り値:
URL が参照するリソースのコンテンツの符号化。不明の場合は null
関連項目:
getHeaderField(java.lang.String)

getExpiration

public long getExpiration()
expires ヘッダフィールドの値を返します。

戻り値:
この URL が参照するリソースの有効期限。不明の場合は 0。値はグリニッジ標準時 1970 年 1 月 1 日 から起算したミリ秒数
関連項目:
getHeaderField(java.lang.String)

getDate

public long getDate()
date ヘッダフィールドの値を返します。

戻り値:
URL が参照するリソースの送信日。不明の場合は 0。戻り値はグリニッジ標準時 1970 年 1 月 1 日 から起算したミリ秒数
関連項目:
getHeaderField(java.lang.String)

getLastModified

public long getLastModified()
last-modified ヘッダフィールドの値を返します。値はグリニッジ標準時 1970 年 1 月 1 日 から起算したミリ秒数として返されます。

戻り値:
この URLConnection が参照するリソースが変更された日付。不明の場合は 0
関連項目:
getHeaderField(java.lang.String)

getHeaderField

public String getHeaderField(String name)
指定されたヘッダフィールドの値を返します。

同じヘッダを別の値で複数回設定する可能性のある接続で呼び出される場合は、最後の値だけが返されます。

パラメータ:
name - ヘッダフィールドの名前
戻り値:
指定されたヘッダフィールドの名前。指定された名前を持つフィールドがヘッダ内にない場合は null

getHeaderFields

public Map<String,List<String>> getHeaderFields()
ヘッダフィールドの変更不可能なマップを返します。マップキーは、応答ヘッダのフィールド名を表す Strings です。各マップ値は、対応するフィールド値を表す変更不可能な Strings のリストです。

戻り値:
ヘッダフィールドのマップ
導入されたバージョン:
1.4

getHeaderFieldInt

public int getHeaderFieldInt(String name,
                             int Default)
指定されたフィールドを数値として構文解析した値を返します。

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

パラメータ:
name - ヘッダフィールドの名前
Default - デフォルト値
戻り値:
指定したフィールドの値を整数として構文解析した値。フィールドがないか、またはフィールドの形式が不正の場合には Default の値

getHeaderFieldDate

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

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

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

getHeaderFieldKey

public String getHeaderFieldKey(int n)
n 番目のヘッダフィールドのキーを返します。フィールドの数が n+1 個よりも少ない場合は null を返します。

パラメータ:
n - インデックス (n>=0)
戻り値:
n 番目のヘッダフィールドのキー。フィールドの数が n+1 個よりも少ない場合は null

getHeaderField

public String getHeaderField(int n)
n 番目のヘッダフィールドの値を返します。フィールドの数が n+1 個よりも少ない場合は null を返します。

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

パラメータ:
n - インデックス (n>=0)
戻り値:
n 番目のヘッダフィールドの値。フィールドの数が n+1 個よりも少ない場合は null
関連項目:
getHeaderFieldKey(int)

getContent

public Object getContent()
                  throws IOException
この URL 接続のコンテンツを取得します。

このメソッドでは最初に getContentType メソッドを呼び出し、オブジェクトの情報の種類を判別します。アプリケーションでその種類の内容を見るのが初めての場合は、その種類の情報ヘッダが作成されます。

  1. アプリケーションで setContentHandlerFactory メソッドを使用し ContentHandler ファクトリのインスタンスがセットアップされている場合は、そのインスタンスの createContentHandler メソッドを呼び出し、内容の種類を引数として渡す。その結果、その内容の種類の ContentHandler が返される
  2. ContentHandler ファクトリがセットアップされていない場合、またはファクトリの createContentHandler メソッドが null を返す場合、アプリケーションは次の名前のクラスをロードする
     sun.net.www.content.<contentType>
    <contentType> は、内容の種類を表わす文字列のスラッシュ文字をすべてピリオド (「.」) に置換し、アルファベット以外のすべての文字を下線文字「_」に置換することによって生成される。アルファベット文字とは、26 個の大文字の ASCII 文字 (「A」から「Z」まで)、26 個の小文字の ASCII 文字 (「a」から「z」まで、および 10 個の ASCII 数字 (「0」から「9」まで) を表す。指定したクラスが存在しない場合、または ContentHandler のサブクラスではない場合は、UnknownServiceException がスローされる

戻り値:
フェッチしたオブジェクト。返されたオブジェクトの種類を調べるには、instanceof 演算子を使用する
例外:
IOException - コンテンツの取得中に入出力エラーが発生した場合
UnknownServiceException - プロトコルがそのコンテンツ形式をサポートしていない場合
関連項目:
ContentHandlerFactory.createContentHandler(java.lang.String), getContentType(), setContentHandlerFactory(java.net.ContentHandlerFactory)

getContent

public Object getContent(Class[] classes)
                  throws IOException
この URL 接続のコンテンツを取得します。

パラメータ:
classes - 要求された型を示す Class 配列
戻り値:
クラスの配列で指定された型が最初に一致した、フェッチしたオブジェクト。要求された型がサポートされていない場合は null。返されたオブジェクトの種類を調べるには、instanceof 演算子を使用する
例外:
IOException - コンテンツの取得中に入出力エラーが発生した場合
UnknownServiceException - プロトコルがそのコンテンツ形式をサポートしていない場合
関連項目:
getContent(), ContentHandlerFactory.createContentHandler(java.lang.String), getContent(java.lang.Class[]), setContentHandlerFactory(java.net.ContentHandlerFactory)

getPermission

public Permission getPermission()
                         throws IOException
このオブジェクトが表す接続の実行に必要なアクセス権を表す、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 が表す接続のために必要なアクセス権を表す Permission オブジェクト
例外:
IOException - アクセス権の処理にネットワークまたはファイル入出力が必要なときに、処理中に例外が発生した場合

getInputStream

public InputStream getInputStream()
                           throws IOException
この接続からの入力を受け取る入力ストリームを返します。 返された入力ストリームからの読み取りの際、データの読み取り準備ができる前に読み取りタイムアウトが経過すると、SocketTimeoutException がスローされることがあります。

戻り値:
この接続からの入力を受け取る入力ストリーム
例外:
IOException - 入力ストリームの作成中に入出力エラーが発生した場合
UnknownServiceException - プロトコルが入力をサポートしていない場合
関連項目:
setReadTimeout(int), getReadTimeout()

getOutputStream

public OutputStream getOutputStream()
                             throws IOException
この接続に書き込みを行う出力ストリームを返します。

戻り値:
この接続に書き込みを行う出力ストリーム
例外:
IOException - 出力ストリームの作成中に入出力エラーが発生した場合
UnknownServiceException - プロトコルが出力をサポートしていない場合

toString

public String toString()
この URL 接続の String 表現を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
この URLConnection の文字列表現

setDoInput

public void setDoInput(boolean doinput)
この URLConnectiondoInput フィールド値を指定した値に設定します。

URL 接続を入出力に使うことができます。URL 接続を使用して入力を行う場合には、DoInput フラグを true に設定します。出力を行う場合には false に設定します。デフォルト値は true です。

パラメータ:
doinput - 新しい値
例外:
IllegalStateException - すでに接続されている場合
関連項目:
doInput, getDoInput()

getDoInput

public boolean getDoInput()
この URLConnectiondoInput フラグの値を返します。

戻り値:
この URLConnectiondoInput フラグの値
関連項目:
setDoInput(boolean)

setDoOutput

public void setDoOutput(boolean dooutput)
この URLConnectiondoOutput フィールドの値を、指定された値に設定します。

URL 接続を入出力に使うことができます。URL 接続を使用して出力を行う場合には、DoOutput フラグを true に設定します。入力を行う場合には false に設定します。デフォルト値は false です。

パラメータ:
dooutput - 新しい値
例外:
IllegalStateException - すでに接続されている場合
関連項目:
getDoOutput()

getDoOutput

public boolean getDoOutput()
この URLConnectiondoOutput フラグの値を返します。

戻り値:
この URLConnectiondoOutput フラグの値
関連項目:
setDoOutput(boolean)

setAllowUserInteraction

public void setAllowUserInteraction(boolean allowuserinteraction)
この URLConnectionallowUserInteraction フィールド値を設定します。

パラメータ:
allowuserinteraction - 新しい値
例外:
IllegalStateException - すでに接続されている場合
関連項目:
getAllowUserInteraction()

getAllowUserInteraction

public boolean getAllowUserInteraction()
このオブジェクトの allowUserInteraction フィールド値を返します。

戻り値:
このオブジェクトの allowUserInteraction フィールド値
関連項目:
setAllowUserInteraction(boolean)

setDefaultAllowUserInteraction

public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
将来に作成されるすべての URLConnection オブジェクトの allowUserInteraction フィールドについて、デフォルト値を指定された値に設定します。

パラメータ:
defaultallowuserinteraction - 新しい値
関連項目:
getDefaultAllowUserInteraction()

getDefaultAllowUserInteraction

public static boolean getDefaultAllowUserInteraction()
allowUserInteraction フィールドのデフォルト値を返します。

デフォルト値は「sticky」(すべての URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。

戻り値:
allowUserInteraction フィールドのデフォルト値
関連項目:
setDefaultAllowUserInteraction(boolean)

setUseCaches

public void setUseCaches(boolean usecaches)
この URLConnectionuseCaches フィールドを、指定された値に設定します。

一部のプロトコルは、ドキュメントをキャッシュします。しかし、場合によってはキャッシュを無視して情報を転送する (ブラウザの「再読込」ボタン) ことが重要なこともあります。接続の UseCaches フラグが true の場合、その接続ではキャッシュを使用することができます。このフラグが false の場合、キャッシュは無視されます。デフォルト値は DefaultUseCaches の値によって決まりますが、DefaultUseCaches のデフォルト値は true です。

パラメータ:
usecaches - キャッシュへの書き込みが可能かどうかを示す boolean
例外:
IllegalStateException - すでに接続されている場合
関連項目:
getUseCaches()

getUseCaches

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

戻り値:
この URLConnectionuseCaches フィールド値
関連項目:
setUseCaches(boolean)

setIfModifiedSince

public void setIfModifiedSince(long ifmodifiedsince)
この URLConnectionifModifiedSince フィールド値を、指定された値に設定します。

パラメータ:
ifmodifiedsince - 新しい値
例外:
IllegalStateException - すでに接続されている場合
関連項目:
getIfModifiedSince()

getIfModifiedSince

public long getIfModifiedSince()
このオブジェクトの ifModifiedSince フィールド値を返します。

戻り値:
このオブジェクトの ifModifiedSince フィールド値
関連項目:
setIfModifiedSince(long)

getDefaultUseCaches

public boolean getDefaultUseCaches()
URLConnectionuseCaches フラグのデフォルト値を返します。

デフォルト値は「sticky」(すべての URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。

戻り値:
URLConnectionuseCaches フラグのデフォルト値
関連項目:
setDefaultUseCaches(boolean)

setDefaultUseCaches

public void setDefaultUseCaches(boolean defaultusecaches)
useCaches フィールドのデフォルト値を、指定された値に設定します。

パラメータ:
defaultusecaches - 新しい値
関連項目:
getDefaultUseCaches()

setRequestProperty

public void setRequestProperty(String key,
                               String value)
一般要求プロパティを設定します。キーを持つプロパティがすでに存在する場合は、その値を新しい値で上書きします。

注: 複数のプロパティを一つのプロパティに付加できるようにする、コンマで区切られたリスト構文を使用するために、HTTP は、同じキーで複数のインスタンスを正当に持てる要求プロパティをすべて必要とします。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
value - キーワードに関連した値
例外:
IllegalStateException - すでに接続されている場合
NullPointerException - キーが null の場合
関連項目:
getRequestProperty(java.lang.String)

addRequestProperty

public void addRequestProperty(String key,
                               String value)
キーと値のペアにより指定された一般要求プロパティを追加します。このメソッドは、同じキーに関連した既存の値は上書きしません。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
value - キーワードに関連した値
例外:
IllegalStateException - すでに接続されている場合
NullPointerException - キーが null の場合
導入されたバージョン:
1.4
関連項目:
getRequestProperties()

getRequestProperty

public String getRequestProperty(String key)
この接続の指定された一般要求プロパティの値を返します。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
戻り値:
この接続の指定された一般要求プロパティの値。キーが null の場合は null が返される
例外:
IllegalStateException - すでに接続されている場合
関連項目:
setRequestProperty(java.lang.String, java.lang.String)

getRequestProperties

public Map<String,List<String>> getRequestProperties()
この接続の一般要求プロパティの変更不可能なマップを返します。マップキーは要求ヘッダのフィールド名を表す Strings です。各マップ値は、対応するフィールド値を表す変更不可能な Strings のリストです。

戻り値:
この接続の一般要求プロパティのマップ
例外:
IllegalStateException - すでに接続されている場合
導入されたバージョン:
1.4

setDefaultRequestProperty

@Deprecated
public static void setDefaultRequestProperty(String key,
                                                        String value)
推奨されていません。 URLConnection の該当インスタンスを取得したあとは、インスタンス固有の setRequestProperty を使用します。このメソッドを呼び出しても、何も行われません。

一般要求プロパティのデフォルト値を設定します。URLConnection は、作成時にこれらの値を使って初期化されます。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
value - キーワードに関連した値
関連項目:
setRequestProperty(java.lang.String,java.lang.String), getDefaultRequestProperty(java.lang.String)

getDefaultRequestProperty

@Deprecated
public static String getDefaultRequestProperty(String key)
推奨されていません。 URLConnection の該当インスタンスを取得したあとは、インスタンス固有の getRequestProperty を使用します。

デフォルトの要求プロパティ値を返します。デフォルトの要求プロパティはすべての接続に設定されています。

パラメータ:
key - 要求を識別するキーワード (「accept」など)
戻り値:
指定されたキーのデフォルトの一般プロパティ値
関連項目:
getRequestProperty(java.lang.String), setDefaultRequestProperty(java.lang.String, java.lang.String)

setContentHandlerFactory

public static void setContentHandlerFactory(ContentHandlerFactory fac)
アプリケーションの ContentHandlerFactory を設定します。アプリケーションでは最大で 1 回呼び出すことができます。

コンテンツの種類を基に ContentHandler を構築する際には ContentHandlerFactory が使用されます。

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

パラメータ:
fac - 目的のファクトリ
例外:
Error - ファクトリがすでに定義されている場合
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkSetFactory メソッドがこの操作を許可しない場合
関連項目:
ContentHandlerFactory, getContent(), SecurityManager.checkSetFactory()

guessContentTypeFromName

public static String guessContentTypeFromName(String fname)
URL の指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツ型を推測します。このメソッドは、getContentType メソッドをオーバーライドするサブクラスで使用すると便利です。

パラメータ:
fname - ファイル名
戻り値:
ファイル名を基に推測したオブジェクトのコンテンツ型
関連項目:
getContentType()

guessContentTypeFromStream

public static String guessContentTypeFromStream(InputStream is)
                                         throws IOException
入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。このメソッドは、getContentType メソッドをオーバーライドするサブクラスで使用することができます。

理想的な状態ではこのルーチンは必要ありません。しかし、コンテンツ型として不正な値を返す http サーバは数多くあります。さらに、標準的ではない拡張子もたくさんあります。このため、http サーバが返すコンテンツ型をうのみにするよりも、データを基にコンテンツ型を直接推測した方が正確な場合がよくあります。

パラメータ:
is - サポートがマークする入力ストリーム
戻り値:
推測したコンテンツ型。推測できない場合は null
例外:
IOException - 入力ストリームの読み取り中に入出力エラーが発生した場合
関連項目:
InputStream.mark(int), InputStream.markSupported(), getContentType()

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 も参照してください。