全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.net.URLConnection
URLConnection
は、アプリケーションと URL との間の通信リンクを表すすべてのクラスのスーパークラスです。このクラスのインスタンスを使用して、URL で参照するリソースの読み込みと書き込みの両方を行うことができます。一般に、URL への接続を作成する際には複数の手順が必要となります。
openConnection() |
connect() |
---|---|
リモートリソースへの接続に影響するパラメータを操作する | リソース、クエリーヘッダーフィールド、情報の内容と対話処理を行う |
openConnection
メソッドを呼び出すことによって、接続オブジェクトを作成する
connect
メソッドを使用してリモートオブジェクトへの実際の接続を確立する
セットアップパラメータを修正するには次のメソッドを使用します。
setAllowUserInteraction
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
一般要求プロパティを修正するには次のメソッドを使用します。
setRequestProperty
AllowUserInteraction
パラメータと UseCaches
パラメータのデフォルト値を設定するには、setDefaultAllowUserInteraction
と setDefaultUseCaches
を使用します。一般要求プロパティのデフォルト値を設定するには、setDefaultRequestProperty
メソッドを使用します。
上記の両方の set
メソッドには対応する get
メソッドがあり、パラメータや一般要求プロパティの値を取得することができます。使用できるパラメータと一般要求プロパティは、プロトコルによって異なります。
リモートオブジェクトへの接続を確立したあと、ヘッダーフィールドと内容にアクセスするには次のメソッドを使用します。
getContent
getHeaderField
getInputStream
getOutputStream
一部のヘッダーフィールドには頻繁にアクセスします。次のメソッドは、これらのフィールドにアクセスする際に便利なメソッドです。
getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed
getContent
メソッドは、リモートオブジェクトの種類を判別する際に getContentType
メソッドを使用します。サブクラスでは、getContentType
メソッドをオーバーライドするときにこのメソッドを使用すると便利です。
一般に、接続前のパラメータと一般要求プロパティは、無視することができます。接続前のパラメータと一般要求プロパティのデフォルト値は読み取りが可能です。このインタフェースの大部分のクライアントで、よく使用するメソッドは getInputStream
メソッドと getObject
メソッドです。これらは URL
クラスの便利なメソッドによってミラーされます。
http
接続の要求プロパティとヘッダーフィールドの詳細については、次のサイトを参照してください。
http://www.w3.org/hypertext/WWW/Protocols/HTTP1.0/draft-ietf-http-spec.html
true
の場合、この URL
はユーザーとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されている。
false
の場合、この接続オブジェクトは指定の URL への通信リンクを作成していない。
setDoInput
メソッドを使用する。
setDoOutput
メソッドを使用する。
true
の場合、そのプロトコルでは可能なときにはいつでもキャッシュ内のデータを使用することができる。
allowUserInteraction
フィールドの値を返す。
content-encoding
ヘッダーフィールドの値を返す。
content-length
ヘッダーフィールドの値を返す。
content-type
ヘッダーフィールドの値を返す。
date
ヘッダーフィールドの値を返す。
allowUserInteraction
フィールドのデフォルト値を返す。
URLConnection
の useCaches
フラグのデフォルト値を返す。
URLConnection
の doInput
フラグの値を返す。
URLConnection
の doOutput
フラグの値を返す。
expires
ヘッダーフィールドの値を返す。
n
番目のヘッダーフィールドの値を返す。
n
番目のヘッダーフィールドのキーを返す。
ifModifiedSince
フィールドの値を返す。
last-modified
ヘッダーフィールドの値を返す。
URLConnection
の URL
フィールドの値を返す。
URLConnection
の useCaches
フィールドの値を返す。
URLConnection
の allowUserInteraction
フィールドの値を設定する。
ContentHandlerFactory
を設定する。
URLConnection
オブジェクトの allowUserInteraction
フィールドのデフォルト値を指定した値に設定する。
useCaches
フィールドの設定値を指定した値に設定する。
URLConnection
の doInput
フィールド値を指定した値に設定する。
URLConnection
の doOutput
フィールド値を指定した値に設定する。
URLConnection
の ifModifiedSince
フィールド値を指定した値に設定する。
URLConnection
の useCaches
フィールド値を指定した値に設定する。
String
表現を返す。
protected URL url
このフィールドの値にアクセスするには、getURL
メソッドを使用します。
この変数のデフォルト値は、URLConnection
コンストラクタの URL 引数の値です。
protected boolean doInput
setDoInput
メソッドを使用します。この変数の値を取得するには getDoInput
メソッドを使用します。
URL 接続を使用して、入力と出力を行うことができます。アプリケーションで URL 接続からデータの読み込みを行う際には、doInput
フラグを true
に設定します。
このフィールドのデフォルト値は true
です。
protected boolean doOutput
setDoOutput
メソッドを使用します。この変数値を取得するには getDoInput
メソッドを使用します。
URL 接続を使用して、入力や出力を行うことができます。アプリケーションで URL 接続に書き込みを行う場合は、doOutput
フラグを true
に設定します。
このフィールドのデフォルト値は false
です。
protected boolean allowUserInteraction
true
の場合、この URL
はユーザーとの対話処理 (認証ダイアログのポップアップなど) の実行が可能なコンテキストで検査されています。false
の場合、ユーザーとの対話処理は許可されていません。
このフィールドの値を設定するには setAllowUserInteraction
メソッドを使用します。
このフィールドの値を取得するには getAllowUserInteraction
メソッドを使用します。
このフィールドのデフォルト値は、setDefaultAllowUserInteraction
メソッドを最後に呼び出したとき、引数に指定した値です。
protected boolean useCaches
true
の場合、プロトコルは可能なときにキャッシュ内のデータを使用することができます。false
の場合、プロトコルは常にオブジェクトの新しいコピーを取得する必要があります。
このフィールド値を設定するには setUseCaches
メソッドを使用します。このフィールド値を取得するには getUseCaches
メソッドを使用します。
このフィールドのデフォルト値は、 setDefaultUseCaches
メソッドを最後に呼び出したときに指定した値です。
protected long ifModifiedSince
ゼロ以外の値は、1970 年 1 月 1 日 GMT から数えた秒数を表します。この値よりもあとにオブジェクトが変更されている場合にだけ、オブジェクトが取り寄せられます。
この変数を設定するには setIfModifiedSince
メソッドを使用します。この変数値を取得するには getIfModifiedSince
メソッドを使用します。
このフィールドのデフォルト値は 0
(常にオブジェクトを取り寄せる) です。
public static FileNameMap fileNameMap
protected boolean connected
false
の場合、この接続オブジェクトは指定した URL への通信リンクを作成していません。true
の場合は、通信リンクが確立されています。
protected URLConnection(URL url)
public abstract void connect() throws IOException
connect
メソッドを呼び出したときに、接続がすでに確立されていれば
(connected
フィールドの値が true
)、メソッド呼び出しは無視されます。
URLConnection オブジェクトは 2 つの段階を踏みます。まずオブジェクトが作成され、そのあと接続が確立されます。作成後、接続を確立する前に、さまざまなオプション (doInput や UseCaches など) を指定することができます。接続後にこれらのオプションを設定しようとするとエラーになります。接続に依存する操作 (getContentLength など) を行うと、必要に応じて接続が暗黙的に確立されます。
public URL getURL()
URLConnection
の URL
フィールド値を返します。
URLConnection
の URL
フィールド値
public int getContentLength()
content-length
ヘッダーフィールドの値を返します。
-1
public String getContentType()
content-type
ヘッダーフィールドの値を返します。
null
public String getContentEncoding()
content-encoding
ヘッダーフィールドの値を返します。
null
public long getExpiration()
expires
ヘッダーフィールドの値を返します。
public long getDate()
date
ヘッダーフィールドの値を返します。
0
。値は 1970 年 1 月 1 日 GMT から数えた秒数として返される
public long getLastModified()
last-modified
ヘッダーフィールドの値を返します。値は 1970 年 1 月 1 日 GMT から数えた秒数として返されます。
URLConnection
が参照するリソースが変更されら日付。不明の場合は 0
public String getHeaderField(String name)
null
public int getHeaderFieldInt(String name, int Default)
一部の種類の接続 (http-ng
など) は事前に解析してあるヘッダーをもつので、この形式の getHeaderField
が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。
Default
の値
public long getHeaderFieldDate(String name, long Default)
一部の種類の接続 (http-ng
など) では事前に解析してあるヘッダーをもつので、この形式の getHeaderField
が存在しています。そのような種類の接続クラスでは、このメソッドをオーバーライドして解析を回避することができます。
Default
引数
public String getHeaderFieldKey(int n)
n
番目のヘッダーフィールドのキーを返します。
n
番目のヘッダーフィールドのキー。フィールドの数が n
個よりも少ない場合は null
public String getHeaderField(int n)
n
番目のヘッダーフィールドの値を返します。フィールドの数が n
個よりも少ない場合は null
を返します。
このメソッドと getHeaderFieldKey
メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダーを繰り返し処理することができます。
n
番目のヘッダーフィールドの値
public Object getContent() throws IOException
このメソッドでは最初に getContentType
メソッドを呼び出し、オブジェクトの情報の種類を判別します。アプリケーションでその種類の内容を見るのがはじめての場合は、その種類の情報ヘッダーが作成されます。
setContentHandlerFactory
メソッドを使用し ContentHandler ファクトリのインスタンスがセットアップされている場合は、そのインスタンスの createContentHandler
メソッドを呼び出し、内容の種類を引数として渡す。その結果、その内容の種類の ContentHandler が返される。
createContentHandler
メソッドが null
を返す場合、アプリケーションは次の名前のクラスをロードする。
<contentType> は、内容の種類を表わす文字列のスラッシュ文字をすべてsun.net.www.content.<contentType>
ピリオド
(「.」) に置換し、アルファベット以外のすべての文字を下線文字「_
」に置換することによって作成される。アルファベット文字とは、26 個の大文字の ASCII 文字 (「A
」から「Z
」まで)、26 子の小文字の ASCII 文字 (「a
」から「z
」まで、および 10 個の ASCII 数字 (「0
」から「9
」まで) を表す。指定したクラスが存在しない場合、または ContentHandler
のサブクラスではない場合は、UnknownServiceException
がスローされる。
instanceOf
操作を行う
public InputStream getInputStream() throws IOException
public OutputStream getOutputStream() throws IOException
public String toString()
String
表現を返します。
URLConnection
の文字列表現
public void setDoInput(boolean doinput)
URLConnection
の doInput
フィールド値を指定した値に設定します。
URL 接続を使用して入出力を行うことができます。URL 接続を使用して入力を行う場合には DoInput フラグを true に設定します。出力を行う場合には false に設定します。DoOutput を明示的に true に設定しない限り、doInput のデフォルト値は true です。DoOutput を true に設定した場合には、DoInput のデフォルト値は false になります。
public boolean getDoInput()
URLConnection
の doInput
フラグの値を返します。
URLConnection
の doInput
フラグの値
public void setDoOutput(boolean dooutput)
URLConnection
の doOutput
フィールド値を指定した値に設定します。
URL 接続を使用して入出力を行うことができます。URL 接続を使用して出力を行う場合には、DoOutput フラグを true に設定します。入力を行う場合には false に設定します。デフォルト値は false です。
public boolean getDoOutput()
URLConnection
の doOutput
フラグの値を返します。
URLConnection
の doOutput
フラグの値
public void setAllowUserInteraction(boolean allowuserinteraction)
URLConnection
の allowUserInteraction
フィールド値を設定します。
public boolean getAllowUserInteraction()
allowUserInteraction
フィールド値を返します。
allowUserInteraction
フィールド値
public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
URLConnection
オブジェクトの allowUserInteraction
フィールドのデフォルト値を指定の値に設定します。
public static boolean getDefaultAllowUserInteraction()
allowUserInteraction
フィールドのデフォルト値を返します。
デフォルト値は「sticky」( URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。
allowUserInteraction
フィールドのデフォルト値
public void setUseCaches(boolean usecaches)
URLConnection
の useCaches
フィールドを指定の値に設定します。
一部のプロトコルは、ドキュメントをキャッシュします。しかし、場合によってはキャッシュを無視して情報を転送する (ブラウザの「再読込」ボタン) ことが重要なこともあります。接続の UseCaches フラグが true の場合、その接続ではキャッシュを使用することができます。このフラグが false の場合、キャッシュは無視されます。デフォルト値は DefaultUseCaches の値によって決まりますが、 DefaultUseCaches のデフォルト値は true です。
public boolean getUseCaches()
URLConnection
の useCaches
フィールド値を返します。
URLConnection
の useCaches
フィールド値
public void setIfModifiedSince(long ifmodifiedsince)
URLConnection
の ifModifiedSince
フィールド値を指定した値に設定します。
public long getIfModifiedSince()
ifModifiedSince
フィールド値を返します。
ifModifiedSince
フィールド値
public boolean getDefaultUseCaches()
URLConnection
の
useCaches
フラグのデフォルト値を返します。
デフォルト値は「sticky」( URLConnection の静的な状態の一部) です。このフラグは、以降に作成されるすべての URLConnection オブジェクトに適用されます。
URLConnection
の useCaches
フラグのデフォルト値
public void setDefaultUseCaches(boolean defaultusecaches)
useCaches
フィールドのデフォルト値を指定の値に設定します。
public void setRequestProperty(String key, String value)
accept
」など)
public String getRequestProperty(String key)
public static void setDefaultRequestProperty(String key, String value)
URLConnection
は、作成時にこれらの値を使って初期化されます。
accept
」など)
public static String getDefaultRequestProperty(String key)
public static synchronized void setContentHandlerFactory(ContentHandlerFactory fac)
ContentHandlerFactory
を設定します。アプリケーションでは最大で 1 回呼び出すことができます。
内容の種類をもとに ContentHandler を作成する際には ContentHandlerFactory
が使用されます。
protected static String guessContentTypeFromName(String fname)
getContentType
メソッドをオーバーライドするサブクラスで使用すると便利です。
public static String guessContentTypeFromStream(InputStream is) throws IOException
getContentType
メソッドをオーバーライドするサブクラスで使用することができます。
理想的な状態ではこのルーチンは必要ありません。しかし、内容の種類として不正な値を返す http
サーバは数多くあります。さらに、標準的ではない拡張子もたくさんあります。このため、http
サーバーが返す内容の種類をうのみにするよりも、データをもとに内容の種類を直接推測した方が正確なことがよくあります。
null
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス