public abstract class HttpURLConnection extends URLConnection
単一の要求を行う際には個々のHttpURLConnectionインスタンスが使用されますが、その背後のHTTPサーバーへのネットワーク接続は、ほかのインスタンスと透過的に共有される可能性があります。要求後、HttpURLConnectionのInputStreamまたはOutputStream上でclose()メソッドを呼び出すと、そのインスタンスに関連付けられていたネットワーク・リソースが解放される可能性がありますが、共有されている持続接続への影響はまったくありません。disconnect()メソッドを呼び出した場合、持続接続がその時点でアイドル状態になっていれば、使用していたソケットがクローズされる可能性があります。
HTTPプロトコル・ハンドラには、システム・プロパティからアクセスできるいくつかの設定があります。これには、プロキシ設定やさまざまな他の設定が含まれます。
セキュリティ権限
セキュリティ・マネージャがインストールされている場合に、接続を開こうとするようなメソッドを呼び出すとき、呼出し元には次のいずれが必要です。
SocketPermission
URLPermission
。自動リダイレクションが有効になっており、この要求が別の宛先にリダイレクトされる場合、呼出し元にはリダイレクト先のホストまたはURLに接続するためのアクセス権も必要です。
disconnect()
修飾子と型 | フィールドと説明 |
---|---|
protected int |
chunkLength
出力時にチャンク・エンコーディング・ストリーミング・モードを使用する場合のチャンク長。
|
protected int |
fixedContentLength
固定長ストリーミング・モードを使用する場合の固定コンテンツ長。
|
protected long |
fixedContentLengthLong
固定長ストリーミング・モードを使用する場合の固定コンテンツ長。
|
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応答メッセージです。
|
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()
この
HttpURLConnection のinstanceFollowRedirects フィールドの値を返します。 |
Permission |
getPermission()
接続先のホストとポートに接続するために必要なアクセス権を表す
SocketPermission オブジェクトを返します。 |
String |
getRequestMethod()
要求メソッドを取得します。
|
int |
getResponseCode()
HTTP応答メッセージからステータス・コードを取得します。
|
String |
getResponseMessage()
サーバーから応答コードとともにHTTP応答メッセージが返された場合、そのメッセージを取得します。
|
void |
setChunkedStreamingMode(int chunklen)
このメソッドを使用すれば、コンテンツ長があらかじめわかっていない場合に、内部バッファを使用しないHTTP要求本体のストリーミングを有効にできます。
|
void |
setFixedLengthStreamingMode(int contentLength)
このメソッドを使用すれば、コンテンツ長があらかじめわかっている場合に、内部バッファを使用しないHTTP要求本体のストリーミングを有効にすることができます。
|
void |
setFixedLengthStreamingMode(long contentLength)
このメソッドを使用すれば、コンテンツ長があらかじめわかっている場合に、内部バッファを使用しないHTTP要求本体のストリーミングを有効にすることができます。
|
static void |
setFollowRedirects(boolean set)
HTTPリダイレクト(応答コード3xxの要求)に、このクラスが自動的に従うべきかどうかを設定します。
|
void |
setInstanceFollowRedirects(boolean followRedirects)
HTTPリダイレクト(応答コード3xxの要求)を、この
HttpURLConnection インスタンスで自動的に従うかどうかを設定します。 |
void |
setRequestMethod(String method)
URL要求のメソッドを次のどれかに設定します。GET POST HEAD OPTIONS PUT DELETE TRACEのうち、どれが有効であるかはプロトコルの制限によって決まります。
|
abstract boolean |
usingProxy()
接続でプロキシを使用するかどうかを表します。
|
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldInt, getHeaderFieldLong, 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
protected String method
protected int chunkLength
-1
は、出力時のチャンク・エンコーディングが無効であることを意味します。protected int fixedContentLength
-1
は、出力時の固定長ストリーミング・モードが無効であることを意味します。
注: コンテンツの長さをより長く設定できるため、このフィールドの代わりにfixedContentLengthLong
が推奨されています。
protected long fixedContentLengthLong
-1
は、出力時の固定長ストリーミング・モードが無効であることを意味します。protected int responseCode
int
です。
protected String responseMessage
protected boolean instanceFollowRedirects
true
の場合、プロトコルは自動的にリダイレクトに従います。false
の場合、プロトコルは自動的にはリダイレクトに従いません。
このフィールドは、setInstanceFollowRedirects
メソッドによって設定されます。その値は、getInstanceFollowRedirects
メソッドによって返されます。
HttpURLConnection作成時、デフォルト値はstatic followRedirectsの値に基づきます。
public static final int HTTP_OK
public static final int HTTP_CREATED
public static final int HTTP_ACCEPTED
public static final int HTTP_NOT_AUTHORITATIVE
public static final int HTTP_NO_CONTENT
public static final int HTTP_RESET
public static final int HTTP_PARTIAL
public static final int HTTP_MULT_CHOICE
public static final int HTTP_MOVED_PERM
public static final int HTTP_MOVED_TEMP
public static final int HTTP_SEE_OTHER
public static final int HTTP_NOT_MODIFIED
public static final int HTTP_USE_PROXY
public static final int HTTP_BAD_REQUEST
public static final int HTTP_UNAUTHORIZED
public static final int HTTP_PAYMENT_REQUIRED
public static final int HTTP_FORBIDDEN
public static final int HTTP_NOT_FOUND
public static final int HTTP_BAD_METHOD
public static final int HTTP_NOT_ACCEPTABLE
public static final int HTTP_PROXY_AUTH
public static final int HTTP_CLIENT_TIMEOUT
public static final int HTTP_CONFLICT
public static final int HTTP_GONE
public static final int HTTP_LENGTH_REQUIRED
public static final int HTTP_PRECON_FAILED
public static final int HTTP_ENTITY_TOO_LARGE
public static final int HTTP_REQ_TOO_LONG
public static final int HTTP_UNSUPPORTED_TYPE
@Deprecated public static final int HTTP_SERVER_ERROR
public static final int HTTP_INTERNAL_ERROR
public static final int HTTP_NOT_IMPLEMENTED
public static final int HTTP_BAD_GATEWAY
public static final int HTTP_UNAVAILABLE
public static final int HTTP_GATEWAY_TIMEOUT
public static final int HTTP_VERSION
protected HttpURLConnection(URL u)
u
- URLpublic String getHeaderFieldKey(int n)
n
番目のヘッダー・フィールドのキーを返します。実装によっては、0
番目のヘッダー・フィールドを特別なものとして、つまりHTTPサーバーから返されたステータス行として扱うことがあります。この場合、getHeaderField(0)
はそのステータス行を返しますが、getHeaderFieldKey(0)
はnullを返します。getHeaderFieldKey
、クラス: URLConnection
n
- インデックス。ここでn >=0
です。n
番目のヘッダー・フィールドのキー。キーが存在しない場合はnull
。public void setFixedLengthStreamingMode(int contentLength)
アプリケーションが、指定されたコンテンツ長を超えるデータを書き込もうとしたり、指定された量の書込みを終える前にOutputStreamをクローズしたりすると、例外がスローされます。
出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読取り時にHttpRetryExceptionがスローされます。この例外を調べれば、エラーの詳細がわかります。
このメソッドは、URLConnectionの接続前に呼び出してください。
注: コンテンツの長さをより長く設定できるため、このメソッドの代わりにsetFixedLengthStreamingMode(long)
が推奨されています。
contentLength
- OutputStreamに書き込まれるバイト数。IllegalStateException
- URLConnectionがすでに接続されている場合、または別のストリーミング・モードがすでに有効になっている場合。IllegalArgumentException
- 0より小さいコンテンツ長が指定された場合。setChunkedStreamingMode(int)
public void setFixedLengthStreamingMode(long contentLength)
アプリケーションが、指定されたコンテンツ長を超えるデータを書き込もうとしたり、指定された量の書込みを終える前にOutputStreamをクローズしたりすると、例外がスローされます。
出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読取り時にHttpRetryExceptionがスローされます。この例外を調べれば、エラーの詳細がわかります。
このメソッドは、URLConnectionの接続前に呼び出してください。
このメソッドを呼び出して設定されたコンテンツの長さは、setFixedLengthStreamingMode(int)
によって設定されたどの値よりも優先されます。
contentLength
- OutputStreamに書き込まれるバイト数。IllegalStateException
- URLConnectionがすでに接続されている場合、または別のストリーミング・モードがすでに有効になっている場合。IllegalArgumentException
- 0より小さいコンテンツ長が指定された場合。public void setChunkedStreamingMode(int chunklen)
出力ストリーム処理を有効にした場合、認証とリダイレクションを自動的に処理することはできません。認証またはリダイレクションが必要とされる場合には、応答の読取り時にHttpRetryExceptionがスローされます。この例外を調べれば、エラーの詳細がわかります。
このメソッドは、URLConnectionの接続前に呼び出してください。
chunklen
−各チャンク内に書き込むバイト数。chunklenが0以下の場合はデフォルト値が使用される。IllegalStateException
- URLConnectionがすでに接続されている場合、または別のストリーミング・モードがすでに有効になっている場合。setFixedLengthStreamingMode(int)
public String getHeaderField(int n)
n
番目のヘッダー・フィールドの値を返します。実装によっては、0
番目のヘッダー・フィールドを特別なものとして、つまりHTTPサーバーから返されたステータス行として扱うことがあります。
このメソッドとgetHeaderFieldKey
メソッドを組み合わせて使用すると、メッセージ内のすべてのヘッダーを反復できます。
getHeaderField
、クラス: URLConnection
n
- インデックス。ここでn>=0
です。n
番目のヘッダー・フィールドの値。値が存在しない場合はnull
。getHeaderFieldKey(int)
public static void setFollowRedirects(boolean set)
セキュリティ・マネージャが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティ・マネージャのcheckSetFactory
メソッドを呼び出します。この結果、SecurityExceptionがスローされることがあります。
set
- HTTPリダイレクトに従うかどうかを示すboolean
。SecurityException
- セキュリティ・マネージャが存在し、そのcheckSetFactory
メソッドでこの操作が許可されていない場合。SecurityManager.checkSetFactory()
, getFollowRedirects()
public static boolean getFollowRedirects()
boolean
を返します。true
、そうでない場合はfalse
。setFollowRedirects(boolean)
public void setInstanceFollowRedirects(boolean followRedirects)
HttpURLConnection
インスタンスで自動的に従うかどうかを設定します。
デフォルトがtrueである、followRedirectsからのデフォルト値。
followRedirects
- HTTPリダイレクトに従うかどうかを示すboolean
。instanceFollowRedirects
, getInstanceFollowRedirects()
public boolean getInstanceFollowRedirects()
HttpURLConnection
のinstanceFollowRedirects
フィールドの値を返します。HttpURLConnection
のinstanceFollowRedirects
フィールドの値。instanceFollowRedirects
, setInstanceFollowRedirects(boolean)
public void setRequestMethod(String method) throws ProtocolException
method
−HTTPメソッドProtocolException
−メソッドをリセットできない場合、または要求されたメソッドがHTTPで有効でない場合。SecurityException
- セキュリティ・マネージャが設定され、メソッドが「TRACE」であるが、「allowHttpTrace」のNetPermissionが許可されない場合。getRequestMethod()
public String getRequestMethod()
setRequestMethod(java.lang.String)
public int getResponseCode() throws IOException
HTTP/1.0 200 OK HTTP/1.0 401 Unauthorizedこれは、200と401をそれぞれ返します。応答からコードを認識できない場合(つまり、その応答が有効なHTTPではない場合)、-1を返します。
IOException
- サーバーへの接続でエラーが発生した場合。public String getResponseMessage() throws IOException
HTTP/1.0 200 OK HTTP/1.0 404 Not Found文字列「OK」と「Not Found」をそれぞれ抽出します。応答から何も認識できなかった場合(結果が有効なHTTPではなかった場合)、nullを返します。
null
IOException
- サーバーへの接続でエラーが発生した場合。public long getHeaderFieldDate(String name, long Default)
URLConnection
この形式のgetHeaderField
が存在しているのは、一部の接続タイプ(http-ng
など)が事前に構文解析されたヘッダーを持つからです。そうした接続タイプのクラスは、このメソッドをオーバーライドすることで構文解析を回避することができます。
getHeaderFieldDate
、クラス: URLConnection
name
- ヘッダー・フィールドの名前。Default
- デフォルト値。Default
引数の値が返されます。public abstract void disconnect()
public abstract boolean usingProxy()
public Permission getPermission() throws IOException
SocketPermission
オブジェクトを返します。getPermission
、クラス: URLConnection
SocketPermission
オブジェクト。IOException
- アクセス権の処理中にエラーが発生した場合。public InputStream getErrorStream()
このメソッドを呼び出しても、接続は開始されません。接続が確立されなかった場合、接続中にサーバーでエラーが発生しなかった場合、またはサーバーでエラーが発生したがエラー・データは送信されなかった場合には、このメソッドはnullを返します。これはデフォルトの設定です。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.