- java.lang.Object
-
- java.net.URLConnection
-
- 直系の既知のサブクラス:
HttpURLConnection,JarURLConnection
public abstract class URLConnection extends Object
抽象クラスURLConnectionは、アプリケーションとURLとの間の通信リンクを表すすべてのクラスのスーパー・クラスです。 このクラスのインスタンスを使用して、URLで参照するリソースの読み込みと書込みの両方を行うことができます。 一般に、URLへの接続の作成は、次のような複数の手順が必要となります。
---------------------------->openConnection()connect()リモート・リソースへの接続に影響するパラメータを操作する。 リソースとの間で、クエリー・ヘッダー・フィールドおよびコンテンツをやり取りする。
時間- URLに対して
openConnectionメソッドを呼び出すことによって、接続オブジェクトを生成する。 - セットアップ・パラメータと一般要求プロパティを操作する。
connectメソッドを使用して、リモート・オブジェクトへの実際の接続を確立する。- リモート・オブジェクトが使用可能になる。 リモート・オブジェクトのヘッダー・フィールドと内容にアクセスできるようになる。
セットアップ・パラメータを修正するには次のメソッドを使用します。
setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCaches
一般要求プロパティを修正するには次のメソッドを使用します。
setRequestProperty
AllowUserInteractionパラメータとUseCachesパラメータのデフォルト値は、setDefaultAllowUserInteractionメソッドとsetDefaultUseCachesメソッドを使用して設定できます。上記の
setメソッドには対応するgetメソッドがあり、それらのメソッドを使えば、パラメータまたは一般要求プロパティの値を取得できます。 具体的にどのパラメータや一般要求プロパティが適用可能であるかは、プロトコルごとに異なります。リモート・オブジェクトへの接続を確立したあと、ヘッダー・フィールドと内容にアクセスするには次のメソッドを使用します。
getContentgetHeaderFieldgetInputStreamgetOutputStream
一部のヘッダー・フィールドは頻繁にアクセスされます。 関連するメソッドを次に示します。
getContentEncodinggetContentLengthgetContentTypegetDategetExpirationgetLastModified
上記を使えば、これらのフィールドに容易にアクセスできます。
getContentTypeメソッドは、リモート・オブジェクトの型を判別するときにgetContentメソッドによって使用されます。サブクラスでは、getContentTypeメソッドをオーバーライドすると便利なことがあります。通常の場合、接続前のパラメータと一般要求プロパティはすべて、無視してかまいません。接続前のパラメータと要求プロパティは適切な値にデフォルト設定されます。 このインタフェースの大部分のクライアントで関心を持たれるメソッドは、2つしかありません。
getInputStreamとgetContentです。これらは、URLクラスの簡易メソッドによってミラー化されます。http接続の要求プロパティとヘッダー・フィールドの詳細は、次のサイトを参照してください。
要求後にhttp://www.ietf.org/rfc/rfc2616.txt
URLConnectionのInputStreamまたはOutputStream上でclose()メソッドを呼び出すと、特定のプロトコル仕様で他の動作が規定されていないかぎり、このインスタンスに関連付けられたネットワーク・リソースが解放されます。- 導入されたバージョン:
- 1.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 booleanallowUserInteractiontrueの場合、このURLは、ユーザーとの対話(認証ダイアログのポップアップなど)を許可することが意味をなすコンテキストで検査されています。protected booleanconnectedfalseの場合、この接続オブジェクトは、指定されたURLへの通信リンクを作成していません。protected booleandoInputこの変数は、setDoInputメソッドによって設定されています。protected booleandoOutputこの変数は、setDoOutputメソッドによって設定されています。protected longifModifiedSince一部のプロトコルでは、特定の時間よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。protected URLurlURLは、World Wide Web上にあるリモート・オブジェクトを表します。このリモート・オブジェクトに対して、接続を開きます。protected booleanuseCachestrueの場合、このプロトコルは、可能な場合はいつでもキャッシュを使用することが許可されています。
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedURLConnection(URL url)指定されたURLへのURL接続を構築します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 voidaddRequestProperty(String key, String value)キーと値のペアで指定された一般要求プロパティを追加します。abstract voidconnect()このURLが参照するリソースへの通信リンクを確立します(通信リンクが確立されていない場合)。booleangetAllowUserInteraction()このオブジェクトのallowUserInteractionフィールドの値を返します。intgetConnectTimeout()接続タイム・アウトの設定を返します。ObjectgetContent()このURL接続のコンテンツを取得します。ObjectgetContent(Class<?>[] classes)このURL接続のコンテンツを取得します。StringgetContentEncoding()content-encodingヘッダー・フィールドの値を返します。intgetContentLength()content-lengthヘッダー・フィールドの値を返します。longgetContentLengthLong()content-lengthヘッダー・フィールドの値をlong型として返します。StringgetContentType()content-typeヘッダー・フィールドの値を返します。longgetDate()dateヘッダー・フィールドの値を返します。static booleangetDefaultAllowUserInteraction()allowUserInteractionフィールドのデフォルト値を返します。static StringgetDefaultRequestProperty(String key)非推奨。URLConnectionの該当インスタンスを取得したあとは、インスタンス固有のgetRequestPropertyメソッドを使用します。booleangetDefaultUseCaches()URLConnectionのuseCachesフラグのデフォルト値を返します。static booleangetDefaultUseCaches(String protocol)指定されたプロトコルのuseCachesフラグのデフォルト値を返します。booleangetDoInput()このURLConnectionのdoInputフラグの値を返します。booleangetDoOutput()このURLConnectionのdoOutputフラグの値を返します。longgetExpiration()expiresヘッダー・フィールドの値を返します。static FileNameMapgetFileNameMap()データ・ファイルからファイル名マップ(mimetable)をロードします。StringgetHeaderField(int n)n番目のヘッダー・フィールドの値を返します。StringgetHeaderField(String name)指定されたヘッダー・フィールドの値を返します。longgetHeaderFieldDate(String name, long Default)指定されたフィールドを日付として構文解析した値を返します。intgetHeaderFieldInt(String name, int Default)指定されたフィールドを数値として構文解析した値を返します。StringgetHeaderFieldKey(int n)n番目のヘッダー・フィールドのキーを返します。longgetHeaderFieldLong(String name, long Default)指定されたフィールドを数値として構文解析した値を返します。Map<String,List<String>>getHeaderFields()ヘッダー・フィールドの変更不可能なマップを返します。longgetIfModifiedSince()このオブジェクトのifModifiedSinceフィールドの値を返します。InputStreamgetInputStream()この接続からの入力を受け取る入力ストリームを返します。longgetLastModified()last-modifiedヘッダー・フィールドの値を返します。OutputStreamgetOutputStream()この接続に書込みを行う出力ストリームを返します。PermissiongetPermission()このオブジェクトが表す接続のために必要なアクセス権を表すPermissionオブジェクトを返します。intgetReadTimeout()読取りタイム・アウトの設定を返します。このオプションが無効(タイム・アウトが無限)の場合は0を返します。Map<String,List<String>>getRequestProperties()この接続の一般要求プロパティの変更不可能なマップを返します。StringgetRequestProperty(String key)この接続の指定された一般要求プロパティの値を返します。URLgetURL()このURLConnectionのURLフィールドの値を返します。booleangetUseCaches()このURLConnectionのuseCachesフィールドの値を返します。static StringguessContentTypeFromName(String fname)URLの指定された「ファイル」コンポーネントを基に、オブジェクトのコンテンツ型を推測します。static StringguessContentTypeFromStream(InputStream is)入力ストリームの先頭の文字を基に、入力ストリームの種類の決定を試みます。voidsetAllowUserInteraction(boolean allowuserinteraction)このURLConnectionのallowUserInteractionフィールドの値を設定します。voidsetConnectTimeout(int timeout)このURLConnectionが参照するリソースへの通信リンクのオープン時に、指定されたミリ秒単位のタイム・アウト値が使用されるように設定します。static voidsetContentHandlerFactory(ContentHandlerFactory fac)アプリケーションのContentHandlerFactoryを設定します。static voidsetDefaultAllowUserInteraction(boolean defaultallowuserinteraction)将来に作成されるすべてのURLConnectionオブジェクトのallowUserInteractionフィールドについて、デフォルト値を指定された値に設定します。static voidsetDefaultRequestProperty(String key, String value)非推奨。URLConnectionの該当インスタンスを取得したあとは、インスタンス固有のsetRequestPropertyメソッドを使用します。 このメソッドを呼び出しても、何の効果もありません。voidsetDefaultUseCaches(boolean defaultusecaches)useCachesフィールドのデフォルト値を、指定された値に設定します。static voidsetDefaultUseCaches(String protocol, boolean defaultVal)指定されたプロトコルのuseCachesフィールドのデフォルト値を指定された値に設定します。voidsetDoInput(boolean doinput)このURLConnectionのdoInputフィールドの値を指定された値に設定します。voidsetDoOutput(boolean dooutput)このURLConnectionのdoOutputフィールドの値を指定された値に設定します。static voidsetFileNameMap(FileNameMap map)FileNameMapを設定します。voidsetIfModifiedSince(long ifmodifiedsince)このURLConnectionのifModifiedSinceフィールドの値を指定された値に設定します。voidsetReadTimeout(int timeout)読取りタイム・アウトを、指定されたミリ秒単位のタイム・アウトに設定します。voidsetRequestProperty(String key, String value)一般要求プロパティを設定します。voidsetUseCaches(boolean usecaches)このURLConnectionのuseCachesフィールドの値を指定された値に設定します。StringtoString()このURL接続のString表現を返します。
-
-
-
フィールドの詳細
-
url
protected URL url
URLは、World Wide Web上にあるリモート・オブジェクトを表します。このリモート・オブジェクトに対して、接続を開きます。このフィールドの値にアクセスするには、
getURLメソッドを使用します。この変数のデフォルト値は、
URLConnectionコンストラクタの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です。
-
allowUserInteraction
protected boolean allowUserInteraction
trueの場合、このURLは、ユーザーとの対話(認証ダイアログのポップアップなど)を許可することが意味をなすコンテキストで検査されています。falseの場合、ユーザーとの対話処理は許可されていません。このフィールドの値に設定するには、
setAllowUserInteractionメソッドを使用します。 その値は、getAllowUserInteractionメソッドによって返されます。 そのデフォルト値は、setDefaultAllowUserInteractionメソッドを最後に呼び出した時の引数の値になります。
-
useCaches
protected boolean useCaches
trueの場合、このプロトコルは、可能な場合はいつでもキャッシュを使用することが許可されています。falseの場合、プロトコルは常に、オブジェクトの新規のコピーを取得する必要があります。このフィールドは、
setUseCachesメソッドによって設定されます。 その値は、getUseCachesメソッドによって返されます。このフィールドのデフォルト値は、
setDefaultUseCachesメソッドを最後に呼び出したときに指定した値です。デフォルトの設定は、プロトコルごとに
setDefaultUseCaches(String,boolean)で上書きすることができます。
-
ifModifiedSince
protected long ifModifiedSince
一部のプロトコルでは、特定の時間よりもあとにオブジェクトが更新されていない場合に、オブジェクトのフェッチを省略することができます。0以外の値は、1970年1月1日GMTから起算したミリ秒数を表します。 オブジェクトが取得されるのは、その時間よりも後にオブジェクトが変更された場合だけです。
この変数は、
setIfModifiedSinceメソッドによって設定されています。 その値は、getIfModifiedSinceメソッドによって返されます。このフィールドのデフォルト値は
0(常にオブジェクトをフェッチする)です。
-
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」プロパティで定義されたユーザー指定表をロードしようとします。 それが失敗した場合、これはデフォルトの組込み表をロードしようとします。- 戻り値:
- 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()
このURLConnectionのURLフィールドの値を返します。- 戻り値:
- この
URLConnectionのURLフィールドの値。 - 関連項目:
url
-
getContentLength
public int getContentLength()
content-lengthヘッダー・フィールドの値を返します。注: このメソッドより
getContentLengthLong()を優先してください。これはlongを返すのでより移植性が高いからです。- 戻り値:
- この接続のURLによって参照されているリソースのコンテンツの長さ。コンテンツの長さが不明の場合や、コンテンツの長さがInteger.MAX_VALUEより長い場合は
-1。
-
getContentLengthLong
public long getContentLengthLong()
content-lengthヘッダー・フィールドの値をlong型として返します。- 戻り値:
- この接続のURLによって参照されているリソースのコンテンツの長さ。コンテンツの長さが不明の場合は
-1。 - 導入されたバージョン:
- 1.7
-
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の値が返されます。
-
getHeaderFieldLong
public long getHeaderFieldLong(String name, long Default)
指定されたフィールドを数値として構文解析した値を返します。この形式の
getHeaderFieldが存在しているのは、一部の接続タイプ(http-ngなど)が事前に構文解析されたヘッダーを持つからです。 そうした接続タイプのクラスは、このメソッドをオーバーライドすることで構文解析を回避することができます。- パラメータ:
name- ヘッダー・フィールドの名前。Default- デフォルト値。- 戻り値:
- 指定されたフィールドをlong値として構文解析した値。 フィールドが見つからないか形式が不正である場合には、
Defaultの値が返されます。 - 導入されたバージョン:
- 1.7
-
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メソッドを呼び出し、オブジェクトの情報の種類を判別します。 アプリケーションが特定のコンテンツ型を初めて見た場合は、そのコンテンツ型のコンテンツ・ハンドラが作成されます。次のように行います。
- アプリケーションで
setContentHandlerFactoryメソッドを使用しContentHandlerファクトリのインスタンスがセット・アップされている場合は、そのインスタンスのcreateContentHandlerメソッドを呼び出し、内容の種類を引数として渡します。その結果、その内容の種類のContentHandlerが返されます。 ContentHandlerFactoryがまだ設定されていない場合、またはcreateContentHandlerメソッドがnullを返した場合は、ServiceLoaderメカニズムを使用して、システム・クラス・ローダーを使用してContentHandlerFactory実装を特定します。 ファクトリが置かれている順序は実装固有であり、実装はそのファクトリを自由にキャッシュできます。createContentHandlerからスローされたServiceConfigurationError、ErrorまたはRuntimeExceptionが発生した場合は、呼び出しスレッドに伝播されます。 ファクトリがnullでないか、すべてのファクトリが使い果たされるまで、各ファクトリのcreateContentHandlerメソッドがインスタンス化されると、コンテンツ型とともに呼び出されます。- それに失敗した場合、このメソッドは
ContentHandlerで定義されたコンテンツ・ハンドラ・クラスをロードしようとします。 クラスが存在しない場合、または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表現を返します。
-
setDoInput
public void setDoInput(boolean doinput)
このURLConnectionのdoInputフィールドの値を指定された値に設定します。URL接続は、入力または出力、あるいはその両方に対して使用できます。 URL接続を入力用として使用する予定である場合はdoInputフラグをtrueに設定し、そうでない場合はfalseに設定します。 デフォルトはtrueです。
- パラメータ:
doinput- 新しい値。- 例外:
IllegalStateException- すでに接続されている場合- 関連項目:
doInput,getDoInput()
-
getDoInput
public boolean getDoInput()
このURLConnectionのdoInputフラグの値を返します。- 戻り値:
- この
URLConnectionのdoInputフラグの値。 - 関連項目:
setDoInput(boolean)
-
setDoOutput
public void setDoOutput(boolean dooutput)
このURLConnectionのdoOutputフィールドの値を指定された値に設定します。URL接続は、入力または出力、あるいはその両方に対して使用できます。 URL接続を出力用として使用する予定である場合はdoOutputフラグをtrueに設定し、そうでない場合はfalseに設定します。 デフォルトはfalseです。
- パラメータ:
dooutput- 新しい値。- 例外:
IllegalStateException- すでに接続されている場合- 関連項目:
getDoOutput()
-
getDoOutput
public boolean getDoOutput()
このURLConnectionのdoOutputフラグの値を返します。- 戻り値:
- この
URLConnectionのdoOutputフラグの値。 - 関連項目:
setDoOutput(boolean)
-
setAllowUserInteraction
public void setAllowUserInteraction(boolean allowuserinteraction)
このURLConnectionのallowUserInteractionフィールドの値を設定します。- パラメータ:
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)
このURLConnectionのuseCachesフィールドの値を指定された値に設定します。プロトコルによってはドキュメントのキャッシングを行う場合があります。 場合によってはキャッシュを無視して情報を転送する(ブラウザの再読込ボタンなど)ことが重要なこともあります。 接続のuseCachesフラグがtrueの場合、接続は、可能な場合はいつでもキャッシュを使用できます。 falseの場合、キャッシュは無視されます。 デフォルト値はDefaultUseCachesの値によって決まりますが、DefaultUseCachesのデフォルト値はtrueです。 デフォルト値は、
setDefaultUseCaches(String,boolean)を使用してプロトコルごとに設定することもできます。- パラメータ:
usecaches−キャッシュへの書込みが可能かどうかを示すboolean値。- 例外:
IllegalStateException- すでに接続されている場合- 関連項目:
getUseCaches()
-
getUseCaches
public boolean getUseCaches()
このURLConnectionのuseCachesフィールドの値を返します。- 戻り値:
- この
URLConnectionのuseCachesフィールドの値。 - 関連項目:
setUseCaches(boolean)
-
setIfModifiedSince
public void setIfModifiedSince(long ifmodifiedsince)
このURLConnectionのifModifiedSinceフィールドの値を指定された値に設定します。- パラメータ:
ifmodifiedsince- 新しい値。- 例外:
IllegalStateException- すでに接続されている場合- 関連項目:
getIfModifiedSince()
-
getIfModifiedSince
public long getIfModifiedSince()
このオブジェクトのifModifiedSinceフィールドの値を返します。- 戻り値:
- このオブジェクトの
ifModifiedSinceフィールドの値。 - 関連項目:
setIfModifiedSince(long)
-
getDefaultUseCaches
public boolean getDefaultUseCaches()
URLConnectionのuseCachesフラグのデフォルト値を返します。このデフォルトは"sticky"であり、すべてのURLConnectionの静的状態の一部です。 このフラグは、次回以降に作成されるすべてのURLConnectionに対して適用されます。 このデフォルト値は、プロトコルごとに
setDefaultUseCaches(String,boolean)を使用してオーバーライドすることができます- 戻り値:
URLConnectionのuseCachesフラグのデフォルト値。- 関連項目:
setDefaultUseCaches(boolean)
-
setDefaultUseCaches
public void setDefaultUseCaches(boolean defaultusecaches)
useCachesフィールドのデフォルト値を、指定された値に設定します。 このデフォルト値は、プロトコルごとにsetDefaultUseCaches(String,boolean)を使用してオーバーライドすることができます- パラメータ:
defaultusecaches- 新しい値。- 関連項目:
getDefaultUseCaches()
-
setDefaultUseCaches
public static void setDefaultUseCaches(String protocol, boolean defaultVal)
指定されたプロトコルのuseCachesフィールドのデフォルト値を指定された値に設定します。 この値は、指定されたプロトコルのsetDefaultUseCaches(boolean)によって設定されたデフォルト設定よりも優先されます。 このメソッドを連続して呼び出すと、設定が変更され、そのプロトコルの今後のすべての接続のデフォルト値に影響します。 プロトコル名は大文字と小文字を区別しません。- パラメータ:
protocol- デフォルトのプロトコルを設定defaultVal- 指定されたプロトコルに対してデフォルトでキャッシングが有効になっているかどうか- 導入されたバージョン:
- 9
-
getDefaultUseCaches
public static boolean getDefaultUseCaches(String protocol)
指定されたプロトコルのuseCachesフラグのデフォルト値を返します。setDefaultUseCaches(String,boolean)が指定されたプロトコルに対して呼び出された場合、その値が返されます。 それ以外の場合は、setDefaultUseCaches(boolean)が呼び出された場合は、その値が返されます。 いずれのメソッドも呼び出されなかった場合、戻り値はtrueです。 プロトコル名は大文字と小文字を区別しません。- パラメータ:
protocol- defaultUseCaches設定が必要なプロトコル- 戻り値:
- 指定されたプロトコルの
useCachesフラグのデフォルト値。 - 導入されたバージョン:
- 9
-
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−markをサポートする入力ストリーム。- 戻り値:
- 推測したコンテンツ型。推測できない場合は
null。 - 例外:
IOException−入力ストリームの読取り中に入出力エラーが発生した場合。- 関連項目:
InputStream.mark(int),InputStream.markSupported(),getContentType()
-
-