JavaTM 2
Platform
Std. Ed. v1.4.0

java.net
クラス HttpURLConnection

java.lang.Object
  |
  +--java.net.URLConnection
        |
        +--java.net.HttpURLConnection
直系の既知のサブクラス:
HttpsURLConnection

public abstract class HttpURLConnection
extends URLConnection

HTTP 特有の機能をサポートする URLConnection です。詳細は、「HTTP - Hypertext Transfer Protocol」を参照してください。

各 HttpURLConnection インスタンスを使用して単一の要求を作成しますが、HTTP サーバへのネットワーク接続は他のインスタンスと透過的に共有されることがあります。要求後、HttpURLConnection の InputStream または OutputStream で close() メソッドを呼び出すと、このインスタンスに関連したネットワークリソースが解放されますが、共有持続接続には影響ありません。disconnect() メソッドを呼び出すと、持続接続がその時アイドル状態であればソケットが閉じることがあります。

導入されたバージョン:
JDK1.1
関連項目:
disconnect()

フィールドの概要
static int HTTP_ACCEPTED
          HTTP ステータスコード 202: 許可されました。
static int HTTP_BAD_GATEWAY
          HTTP ステータスコード 502: 誤ったゲートウェイです。
static int HTTP_BAD_METHOD
          HTTP ステータスコード 405: メソッドは許可されません。
static int HTTP_BAD_REQUEST
          HTTP ステータスコード 400: 不当な要求です。
static int HTTP_CLIENT_TIMEOUT
          HTTP ステータスコード 408: 要求が時間切れです。
static int HTTP_CONFLICT
          HTTP ステータスコード 409: 重複しています。
static int HTTP_CREATED
          HTTP ステータスコード 201: 作成されました。
static int HTTP_ENTITY_TOO_LARGE
          HTTP ステータスコード 413: 要求エンティティが長すぎます。
static int HTTP_FORBIDDEN
          HTTP ステータスコード 403: 禁止されています。
static int HTTP_GATEWAY_TIMEOUT
          HTTP ステータスコード 504: ゲートウェイが時間切れです。
static int HTTP_GONE
          HTTP ステータスコード 410: 存在しません。
static int HTTP_INTERNAL_ERROR
          HTTP ステータスコード 500: 内部サーバエラーです。
static int HTTP_LENGTH_REQUIRED
          HTTP ステータスコード 411: 長さが必要です。
static int HTTP_MOVED_PERM
          HTTP ステータスコード 301: 永続的に移動されました。
static int HTTP_MOVED_TEMP
          HTTP ステータスコード 302: 一時的に切り替えます。
static int HTTP_MULT_CHOICE
          HTTP ステータスコード 300: 複数選択されています。
static int HTTP_NO_CONTENT
          HTTP ステータスコード 204: コンテンツがありません。
static int HTTP_NOT_ACCEPTABLE
          HTTP ステータスコード 406: 許容されません。
static int HTTP_NOT_AUTHORITATIVE
          HTTP ステータスコード 203: 不当な情報です。
static int HTTP_NOT_FOUND
          HTTP ステータスコード 404: 見つかりませんでした。
static int HTTP_NOT_IMPLEMENTED
          HTTP ステータスコード 501: 実装されていません。
static int HTTP_NOT_MODIFIED
          HTTP ステータスコード 304: 修正されませんでした。
static int HTTP_OK
          HTTP ステータスコード 200: OK です。
static int HTTP_PARTIAL
          HTTP ステータスコード 206: 部分的なコンテンツです。
static int HTTP_PAYMENT_REQUIRED
          HTTP ステータスコード 402: 支払いが必要です。
static int HTTP_PRECON_FAILED
          HTTP ステータスコード 412: 前提条件が正しくありません。
static int HTTP_PROXY_AUTH
          HTTP ステータスコード 407: プロキシの認証が必要です。
static int HTTP_REQ_TOO_LONG
          HTTP ステータスコード 414: 要求 URL が長すぎます。
static int HTTP_RESET
          HTTP ステータスコード 205: コンテンツをリセットします。
static int HTTP_SEE_OTHER
          HTTP ステータスコード 303: 他を参照してください。
static int HTTP_SERVER_ERROR
          推奨されていません。 間違ったフィールドであり、存在するべきではありせん。
static int HTTP_UNAUTHORIZED
          HTTP ステータスコード 401: 認証されませんでした。
static int HTTP_UNAVAILABLE
          HTTP ステータスコード 503: サービスが利用できません。
static int HTTP_UNSUPPORTED_TYPE
          HTTP ステータスコード 415: サポートされないメディアタイプです。
static int HTTP_USE_PROXY
          HTTP ステータスコード 305: プロキシを使用してください。
static int HTTP_VERSION
          HTTP ステータスコード 505: HTTP バージョンがサポートされていません。
protected  boolean instanceFollowRedirects
          プロトコルが自動的にリダイレクトする場合は true、自動的にリダイレクトしない場合は false です。
protected  String method
          HTTP メソッド (GET、POST、PUT など) です。
protected  int responseCode
          3 桁の HTTP ステータスコードを表す int です。
protected  String responseMessage
          HTTP 応答メッセージです。
 
クラス java.net.URLConnection から継承したフィールド
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
 
コンストラクタの概要
protected HttpURLConnection(URL u)
          HttpURLConnection のコンストラクタです。
 
メソッドの概要
abstract  void disconnect()
          サーバへの他の要求が今後発生しそうにないことを示します。
 InputStream getErrorStream()
          接続には失敗してもサーバが有効なデータを送ってきた場合に、エラーストリームを返します。
static boolean getFollowRedirects()
          HTTP リダイレクト (3xx) に自動的に従うかどうかを示す boolean を返します。
 long getHeaderFieldDate(String name, long Default)
          指定されたフィールドを日付として解析した値を返します。
 boolean getInstanceFollowRedirects()
          この HttpURLConnectioninstanceFollowRedirects フィールド値を返します。
 Permission getPermission()
          このオブジェクトが表す接続の実行に必要なアクセス権を表す、Permission オブジェクトを返します。
 String getRequestMethod()
          要求メソッドを取得します。
 int getResponseCode()
          次のような応答から HTTP 応答ステータスを取得します。
 String getResponseMessage()
          サーバからの応答コードに HTTP 応答メッセージが含まれている場合、これを返します。
static void setFollowRedirects(boolean set)
          このクラスが、HTTP リダイレクト (応答コード 300 番台の要求) に自動的に従うかどうかを設定します。
 void setInstanceFollowRedirects(boolean followRedirects)
          HTTP リダイレクト (応答コード 3xx の要求) を、この HttpURLConnection インスタンスで自動に従うかどうかを設定します。
 void setRequestMethod(String method)
          URL 要求のメソッドを次のどれかに設定します。
abstract  boolean usingProxy()
          接続でプロキシを使用するかどうかを表します。
 
クラス java.net.URLConnection から継承したメソッド
addRequestProperty, connect, getAllowUserInteraction, getContent, getContent, getContentEncoding, getContentLength, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldInt, getHeaderFieldKey, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setRequestProperty, setUseCaches, toString
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

method

protected String method
HTTP メソッド (GET、POST、PUT など) です。


responseCode

protected int responseCode
3 桁の HTTP ステータスコードを表す int です。


responseMessage

protected String responseMessage
HTTP 応答メッセージです。


instanceFollowRedirects

protected boolean instanceFollowRedirects
プロトコルが自動的にリダイレクトする場合は true、自動的にリダイレクトしない場合は false です。

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

HttpURLConnection 作成時、デフォルト値は static followRedirects の値に基づきます。

関連項目:
setInstanceFollowRedirects(boolean), getInstanceFollowRedirects(), setFollowRedirects(boolean)

HTTP_OK

public static final int HTTP_OK
HTTP ステータスコード 200: OK です。

関連項目:
定数フィールド値

HTTP_CREATED

public static final int HTTP_CREATED
HTTP ステータスコード 201: 作成されました。

関連項目:
定数フィールド値

HTTP_ACCEPTED

public static final int HTTP_ACCEPTED
HTTP ステータスコード 202: 許可されました。

関連項目:
定数フィールド値

HTTP_NOT_AUTHORITATIVE

public static final int HTTP_NOT_AUTHORITATIVE
HTTP ステータスコード 203: 不当な情報です。

関連項目:
定数フィールド値

HTTP_NO_CONTENT

public static final int HTTP_NO_CONTENT
HTTP ステータスコード 204: コンテンツがありません。

関連項目:
定数フィールド値

HTTP_RESET

public static final int HTTP_RESET
HTTP ステータスコード 205: コンテンツをリセットします。

関連項目:
定数フィールド値

HTTP_PARTIAL

public static final int HTTP_PARTIAL
HTTP ステータスコード 206: 部分的なコンテンツです。

関連項目:
定数フィールド値

HTTP_MULT_CHOICE

public static final int HTTP_MULT_CHOICE
HTTP ステータスコード 300: 複数選択されています。

関連項目:
定数フィールド値

HTTP_MOVED_PERM

public static final int HTTP_MOVED_PERM
HTTP ステータスコード 301: 永続的に移動されました。

関連項目:
定数フィールド値

HTTP_MOVED_TEMP

public static final int HTTP_MOVED_TEMP
HTTP ステータスコード 302: 一時的に切り替えます。

関連項目:
定数フィールド値

HTTP_SEE_OTHER

public static final int HTTP_SEE_OTHER
HTTP ステータスコード 303: 他を参照してください。

関連項目:
定数フィールド値

HTTP_NOT_MODIFIED

public static final int HTTP_NOT_MODIFIED
HTTP ステータスコード 304: 修正されませんでした。

関連項目:
定数フィールド値

HTTP_USE_PROXY

public static final int HTTP_USE_PROXY
HTTP ステータスコード 305: プロキシを使用してください。

関連項目:
定数フィールド値

HTTP_BAD_REQUEST

public static final int HTTP_BAD_REQUEST
HTTP ステータスコード 400: 不当な要求です。

関連項目:
定数フィールド値

HTTP_UNAUTHORIZED

public static final int HTTP_UNAUTHORIZED
HTTP ステータスコード 401: 認証されませんでした。

関連項目:
定数フィールド値

HTTP_PAYMENT_REQUIRED

public static final int HTTP_PAYMENT_REQUIRED
HTTP ステータスコード 402: 支払いが必要です。

関連項目:
定数フィールド値

HTTP_FORBIDDEN

public static final int HTTP_FORBIDDEN
HTTP ステータスコード 403: 禁止されています。

関連項目:
定数フィールド値

HTTP_NOT_FOUND

public static final int HTTP_NOT_FOUND
HTTP ステータスコード 404: 見つかりませんでした。

関連項目:
定数フィールド値

HTTP_BAD_METHOD

public static final int HTTP_BAD_METHOD
HTTP ステータスコード 405: メソッドは許可されません。

関連項目:
定数フィールド値

HTTP_NOT_ACCEPTABLE

public static final int HTTP_NOT_ACCEPTABLE
HTTP ステータスコード 406: 許容されません。

関連項目:
定数フィールド値

HTTP_PROXY_AUTH

public static final int HTTP_PROXY_AUTH
HTTP ステータスコード 407: プロキシの認証が必要です。

関連項目:
定数フィールド値

HTTP_CLIENT_TIMEOUT

public static final int HTTP_CLIENT_TIMEOUT
HTTP ステータスコード 408: 要求が時間切れです。

関連項目:
定数フィールド値

HTTP_CONFLICT

public static final int HTTP_CONFLICT
HTTP ステータスコード 409: 重複しています。

関連項目:
定数フィールド値

HTTP_GONE

public static final int HTTP_GONE
HTTP ステータスコード 410: 存在しません。

関連項目:
定数フィールド値

HTTP_LENGTH_REQUIRED

public static final int HTTP_LENGTH_REQUIRED
HTTP ステータスコード 411: 長さが必要です。

関連項目:
定数フィールド値

HTTP_PRECON_FAILED

public static final int HTTP_PRECON_FAILED
HTTP ステータスコード 412: 前提条件が正しくありません。

関連項目:
定数フィールド値

HTTP_ENTITY_TOO_LARGE

public static final int HTTP_ENTITY_TOO_LARGE
HTTP ステータスコード 413: 要求エンティティが長すぎます。

関連項目:
定数フィールド値

HTTP_REQ_TOO_LONG

public static final int HTTP_REQ_TOO_LONG
HTTP ステータスコード 414: 要求 URL が長すぎます。

関連項目:
定数フィールド値

HTTP_UNSUPPORTED_TYPE

public static final int HTTP_UNSUPPORTED_TYPE
HTTP ステータスコード 415: サポートされないメディアタイプです。

関連項目:
定数フィールド値

HTTP_SERVER_ERROR

public static final int HTTP_SERVER_ERROR
推奨されていません。 間違ったフィールドであり、存在するべきではありせん。

HTTP ステータスコード 500: 内部サーバエラーです。

関連項目:
定数フィールド値

HTTP_INTERNAL_ERROR

public static final int HTTP_INTERNAL_ERROR
HTTP ステータスコード 500: 内部サーバエラーです。

関連項目:
定数フィールド値

HTTP_NOT_IMPLEMENTED

public static final int HTTP_NOT_IMPLEMENTED
HTTP ステータスコード 501: 実装されていません。

関連項目:
定数フィールド値

HTTP_BAD_GATEWAY

public static final int HTTP_BAD_GATEWAY
HTTP ステータスコード 502: 誤ったゲートウェイです。

関連項目:
定数フィールド値

HTTP_UNAVAILABLE

public static final int HTTP_UNAVAILABLE
HTTP ステータスコード 503: サービスが利用できません。

関連項目:
定数フィールド値

HTTP_GATEWAY_TIMEOUT

public static final int HTTP_GATEWAY_TIMEOUT
HTTP ステータスコード 504: ゲートウェイが時間切れです。

関連項目:
定数フィールド値

HTTP_VERSION

public static final int HTTP_VERSION
HTTP ステータスコード 505: HTTP バージョンがサポートされていません。

関連項目:
定数フィールド値
コンストラクタの詳細

HttpURLConnection

protected HttpURLConnection(URL u)
HttpURLConnection のコンストラクタです。

パラメータ:
u - URL
メソッドの詳細

setFollowRedirects

public static void setFollowRedirects(boolean set)
このクラスが、HTTP リダイレクト (応答コード 300 番台の要求) に自動的に従うかどうかを設定します。デフォルトでは true です。アプレットは、この変数を変更できません。

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

パラメータ:
set - HTTP リダイレクトを行うかどうかを示す boolean
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkSetFactory メソッドがこの操作を許可しない場合
関連項目:
SecurityManager.checkSetFactory(), getFollowRedirects()

getFollowRedirects

public static boolean getFollowRedirects()
HTTP リダイレクト (3xx) に自動的に従うかどうかを示す boolean を返します。

戻り値:
HTTP リダイレクトに自動的に従う場合は true、そうでない場合は false
関連項目:
setFollowRedirects(boolean)

setInstanceFollowRedirects

public void setInstanceFollowRedirects(boolean followRedirects)
HTTP リダイレクト (応答コード 3xx の要求) を、この HttpURLConnection インスタンスで自動に従うかどうかを設定します。

デフォルトが true である、followRedirects からのデフォルト値

パラメータ:
followRedirects - HTTP リダイレクトを行うかどうかを示す boolean
関連項目:
instanceFollowRedirects, getInstanceFollowRedirects()

getInstanceFollowRedirects

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

戻り値:
この HttpURLConnectioninstanceFollowRedirects フィールド値
関連項目:
instanceFollowRedirects, setInstanceFollowRedirects(boolean)

setRequestMethod

public void setRequestMethod(String method)
                      throws ProtocolException
URL 要求のメソッドを次のどれかに設定します。 これらのメソッドのうち、どれが有効であるかはプロトコルの制限によって決まります。デフォルトのメソッドは GET です。

パラメータ:
method - HTTP メソッド
例外:
ProtocolException - メソッドをリセットできない場合、または要求したメソッドが HTTP で無効である場合
関連項目:
getRequestMethod()

getRequestMethod

public String getRequestMethod()
要求メソッドを取得します。

戻り値:
HTTP 要求メソッド
関連項目:
setRequestMethod(java.lang.String)

getResponseCode

public int getResponseCode()
                    throws IOException
次のような応答から HTTP 応答ステータスを取得します。
HTTP/1.0 200 OK
HTTP/1.0 401 Unauthorized
前述の応答からは整数 200 と 401 をそれぞれ取り出します。応答が識別できない (有効な HTTP でない) 場合は -1 を返します。

戻り値:
HTTP ステータスコード
例外:
IOException - サーバへの接続でエラーが発生した場合

getResponseMessage

public String getResponseMessage()
                          throws IOException
サーバからの応答コードに HTTP 応答メッセージが含まれている場合、これを返します。応答コードの例を次に示します。
HTTP/1.0 200 OK
HTTP/1.0 404 Not Found
「OK」と「Not Found」の文字列の部分をそれぞれ取り出します。応答コードが識別できない (有効な HTTP でない) 場合は null を返します。

戻り値:
HTTP 応答メッセージまたは null
例外:
IOException - サーバへの接続でエラーが発生した場合

getHeaderFieldDate

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

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

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

disconnect

public abstract void disconnect()
サーバへの他の要求が今後発生しそうにないことを示します。disconnect() の呼び出しにより、この HttpURLConnection インスタンスを他の要求で再利用することは示しません。


usingProxy

public abstract boolean usingProxy()
接続でプロキシを使用するかどうかを表します。

戻り値:
接続でプロキシを使用するかどうかを表す boolean 型

getPermission

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

getErrorStream

public InputStream getErrorStream()
接続には失敗してもサーバが有効なデータを送ってきた場合に、エラーストリームを返します。よくある例は、HTTP サーバがコード 404 で応答したときに、接続に対しては FileNotFoundException がスローされますが、サーバから対処策を指示する HTML ヘルプページが送信される場合です。

このメソッドは、接続を開始しません。接続が確立されていない場合、接続中にサーバでエラーが発生しなかった場合、あるいはサーバでエラーが発生してもエラーのデータが送られなかった場合には、このメソッドは null を返します。これがデフォルトの動作です。

戻り値:
エラーストリーム。エラーがなかった場合、接続が確立されていない場合、あるいはサーバから有効なデータが送られなかった場合は null

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.