JavaTM Platform
Standard Ed. 6

java.net
クラス URLConnection

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

public abstract class URLConnection
extends Object

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

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

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

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

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

上記の set メソッドはそれぞれ対応する get メソッドを持ちます。それらのメソッドを使えば、パラメータまたは一般要求プロパティーの値を取得できます。具体的にどのパラメータや一般要求プロパティーが適用可能であるかは、プロトコルごとに異なります。

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

一部のヘッダーフィールドは頻繁にアクセスされます。関連するメソッドを次に示します。

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

通常の場合、接続前のパラメータと一般要求プロパティーはすべて、無視してかまいません。接続前のパラメータと要求プロパティーは適切な値にデフォルト設定されます。このインタフェースの大部分のクライアントで関心を持たれるメソッドは、2 つしかありません。getInputStreamgetContent です。これらは、URL クラスの簡易メソッドによってミラー化されます。

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

 http://www.ietf.org/rfc/rfc2068.txt
 
fileNameMap に関する注:JDK 1.1.6 より前のバージョンでは、URLConnection のフィールド fileNameMap は 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 接続は、入力または出力、あるいはその両方に対して使用できます。doInput フラグを true に設定した場合、それは、アプリケーションが URL 接続からデータを読み取る予定であることを示します。

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

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

doOutput

protected boolean doOutput
この変数は、setDoOutput メソッドによって設定されます。その値は、getDoOutput メソッドによって返されます。

URL 接続は、入力または出力、あるいはその両方に対して使用できます。doOutput フラグを true に設定した場合、それは、アプリケーションが URL 接続にデータを書き込む予定であることを示します。

このフィールドのデフォルト値は 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」プロパティーで定義されたユーザー指定テーブルをロードしようとします。それが失敗した場合、これは、java ホームの lib/content-types.properties にあるデフォルトの組み込みテーブルをロードしようとします。

戻り値:
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 - timeout パラメータが負の場合
導入されたバージョン:
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 - timeout パラメータが負の場合
導入されたバージョン:
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 日 GMT からのミリ秒数
関連項目:
getHeaderField(java.lang.String)

getDate

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

戻り値:
URL が参照するリソースの送信日。不明の場合は 0。返される値は、1970 年 1 月 1 日 GMT からのミリ秒数
関連項目:
getHeaderField(java.lang.String)

getLastModified

public long getLastModified()
last-modified ヘッダーフィールドの値を返します。結果は、1970 年 1 月 1 日 GMT からのミリ秒数です。

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

getHeaderField

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

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

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

getHeaderFields

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

戻り値:
ヘッダフィールドのマップ
導入されたバージョン:
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 日 GMT からのミリ秒数です。

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

戻り値:
この 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 に設定します。policy.allowSystemProperty プロパティーのデフォルト値は 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)
一般要求プロパティーを設定します。このキーを持つプロパティーがすでに存在する場合は、その値を新しい値で上書きします。  

注:複数のプロパティーを 1 つのプロパティーに付加できるようにする、コンマで区切られたリスト構文を使用するために、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()
この接続の一般要求プロパティーの変更不可能なマップを返します。マップのキーは、要求ヘッダーのフィールド名を表す String です。マップの各値は変更不可能な String のリストであり、対応するフィールドの値を表します。

戻り値:
この接続の一般要求プロパティーのマップ
例外:
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 Platform
Standard Ed. 6

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

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