クラス HttpConnect
java.lang.Object
org.opengion.fukurou.util.HttpConnect
HttpConnect は、指定のURL にアクセスして、データを取得します。
URL へのアクセスにより、エンジンでは各種処理を実行させることが可能になります。
例えば、帳票デーモンの起動や、長時間かかる処理の実行などです。
なお、URLに引数が付く場合は、ダブルコーテーションで括って下さい。
URL の指定は、先頭に何もつけませ。指定の順番も関係ありません。
- 付き引数は、指定順番は、関係ありません。
先頭が # の引数は、コメントと判断します。
Usage: java org.opengion.fukurou.util.HttpConnect [-post=キー:ファイル名] … url [user:passwd] args[A] : url URLを指定します。GETの場合、パラメータは ?KEY=VALです args[*] : [-param=key:value] POST/GET時のパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-header=key:value] ヘッダーに設定するパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-auth=user:pass] BASIC認証のエリアへのアクセス時のユーザーとパスワードを指定します args[*] : [-proxy=host:port] proxy を使用する場合のホストとポートを指定します。 args[*] : [-timeout=3] 接続タイムアウト時間を(秒)で指定します(初期値:無指定) args[*] : [-encode=UTF-8] エンコードを指定します。(初期値は UTF-8) args[*] : [-out=ファイル名] 結果をファイルに出力します。初期値は標準出力です args[*] : [-download=ファイル名] ファイル名を指定して、ダウンロードします args[*] : [-upload=ファイル名] ファイル名を指定して、multipart/form-dataでファイルアップロードします※ URLConnect との違い。 -info/-data 等の区別の廃止。(実質、-info がなくなる。) setDownloadFile(String) 追加(-binaryの代用) setUploadFile(String) 追加 proxy 設定の変更args[*] : [-postRedirect=true] POST時に強制的にリダイレクトを行います(GET時は自動でリダイレクトします)(初期値:false) 7.2.5.0 (2020/06/01)args[*] : [-usePost=true] POSTを強制的に使用する場合にセットします(初期値:false) args[*] : [-errEx=true/false] trueの場合、レスポンスコードが、4XX,5XX の時に RuntimeException を投げます(初期値:false) args[*] : [-authJson=JSONコード] JSONコードで認証する場合に使用します。8.0.0.0 (2021/08/31) args[*] : [-authURL=認証用URL] JSONコードで認証するURLを指定します。8.0.0.0 (2021/08/31) args[*] : [-reqJson=JSONコード] パラメータをJSONで指定する場合に使用します。8.0.0.0 (2021/08/31) args[*] : [#・・・・] コメント引数。(BATファイル上に残しておきたいが、使用したくない場合など) args[*] : [-debug=true/false] trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成, 8.0.0.0 (2021/08/31) httpclient5 対応 https://hc.apache.org/httpcomponents-core-5.1.x/current/httpcore5/apidocs/ https://hc.apache.org/httpcomponents-client-5.1.x/current/httpclient5/apidocs/
- 導入されたバージョン:
- JDK11.0,
-
フィールドの概要
フィールド -
コンストラクタの概要
コンストラクタコンストラクタ説明HttpConnect
(String url, String userPass) 接続先URLと、認証用ユーザー:パスワードを指定する、コンストラクター 認証が必要ない場合は、userPass は、null でかまいません。 -
メソッドの概要
修飾子とタイプメソッド説明void
addHeaderProperty
(String key, String val) Header として、HttpClient にセットするデータを設定します。void
addRequestProperty
(String key, String val) 接続先に使用する引数(パラメータ)を追加します。static String
code2Message
(int code) HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。int
getCode()
実行結果のステータスコード 情報を取得します。メッセージ 情報を取得します。static void
サンプル実行用のメインメソッドreadData()
URL接続先のデータを取得します。void
setAuthJson
(String json, String url) jsonによる2フェーズ認証を行う場合の設定。void
setCharset
(String chset) エンコード情報を設定します。void
setDebug
(boolean isDebug) trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)。void
setDownloadFile
(String dwldFile) URL接続先のバイナリファイルをダウンロード取得します。void
指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。void
setReqJson
(String json) パラメータをJSONで指定する場合に使用します。void
setRequestProperty
(String keys, String vals) setRequestPropertyでセットするデータを設定します。void
setTimeout
(int tout) 接続タイムアウト時間を(秒)で指定します 実際には、org.apache.http.client.config.RequestConfig に対して、 .setConnectTimeout( timeout * 1000 ) .setSocketTimeout( timeout * 1000 ) のように、1000倍して設定しています。void
setUploadFile
(String upldFile) URL接続先のバイナリファイルをアップロードします。void
usePost
(boolean usePost) trueの場合、POSTを使用して接続します(初期値:false)。
-
フィールド詳細
-
DEFAULT_CHARSET
エンコードの初期値 "UTF-8"- 関連項目:
-
DEFAULT_LANG
言語の初期値 "ja-JP"- 関連項目:
-
DEFAULT_AGENT
User-Agentの初期値 "openGion with Apache HttpClient"- 関連項目:
-
MAX_GET_LENGTH
GETで指定するときのURLの長さ制限 2000 (IEの場合は、2,083文字)- 関連項目:
-
-
コンストラクタの詳細
-
HttpConnect
接続先URLと、認証用ユーザー:パスワードを指定する、コンストラクター 認証が必要ない場合は、userPass は、null でかまいません。 接続先URLは、HttpConnect で、urlEncode しますので、そのままの文字列でかまいません。- パラメータ:
url
- 接続するアドレスを指定します。(http://server:port/dir/file.html)userPass
- ユーザー:パスワード(認証接続が必要な場合)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成, 8.0.0.0 (2021/07/31) httpclient4 → httpclient5 対応
-
-
メソッドの詳細
-
readData
URL接続先のデータを取得します。 この処理の前に、必要な情報を設定して置いてください。 また、code や message は、このメソッドを実行しないと取得できませんのでご注意ください。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。- 戻り値:
- 接続結果
- 例外:
IOException
- 入出力エラーが発生したときMalformedURLException
- URLの形式が間違っている場合- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成, 8.0.0.0 (2021/07/31) httpclient4 → httpclient5 対応, 8.4.0.0 (2022/12/23) CloseableHttpClientのexecute(ClassicHttpRequest)は推奨されません, 8.5.4.2 (2024/01/12) 文字化け対策
- このメソッドは、nullを返しません
-
addRequestProperty
接続先に使用する引数(パラメータ)を追加します。 これは、POSTでも、GETでも使用できます。 POSTの場合は、NameValuePair として、HttpPost に、Entity としてセットするデータを設定します。 GET の場合は、既存の接続先URLに、&キー=値・・・・ で、追記します。 すでに、パラメータが指定済みの場合は、& で、そうでなければ、? で連結します。 ここで指定するパラメータは、内部で、urlEncode しますので、そのままの文字列でかまいません。 デフォルトは、GETですが、Internet Explorer では URL に最大 2,083 文字しか指定できないため、 それ以上の場合は、POST に自動で切り替えます。- パラメータ:
key
- パラメータキー(nullの場合は、登録しません)val
- パラメータ値- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setRequestProperty
setRequestPropertyでセットするデータを設定します。 keys,vals各々、カンマ区切りで分解します。- パラメータ:
keys
- パラメータキー(カンマ区切り)vals
- パラメータ(カンマ区切り)- 変更履歴:
- 5.10.16.0 (2019/10/04) 追加
-
setProxy
指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。 このときに、ヘッダー情報を内部変数に設定しておきます。- パラメータ:
host
- 接続するプロキシのホスト名(nullの場合は、登録しません)port
- 接続するプロキシのポート番号- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
addHeaderProperty
Header として、HttpClient にセットするデータを設定します。 例えばJSON形式でPOSTする場合は通常"Content-Type", "application/json"を指定します。- パラメータ:
key
- パラメータキー(nullの場合は、登録しません)val
- パラメータ値(nullの場合は、登録しません)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setDownloadFile
URL接続先のバイナリファイルをダウンロード取得します。 取得したファイルは、dwldFile にバイナリのまま書き込まれます。 よって、エンコードの指定は不要です。- パラメータ:
dwldFile
- ダウンロードするファイル名。- 例外:
IOException
- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setUploadFile
URL接続先のバイナリファイルをアップロードします。 取得したファイルは、upldFile にバイナリのまま書き込まれます。 よって、エンコードの指定は不要です。 アップロード は、multipart/form-data で送信するため、isPost = true を 内部的に設定しておきます。- パラメータ:
upldFile
- アップロードするファイル名。- 例外:
IOException
- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成, 7.2.5.0 (2020/06/01) upldFileのnull判定を入れます。
-
setCharset
エンコード情報を設定します。 初期値は、UTF-8 です。- パラメータ:
chset
- エンコード情報(nullの場合は、初期値:UTF-8 になります)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setTimeout
接続タイムアウト時間を(秒)で指定します 実際には、org.apache.http.client.config.RequestConfig に対して、 .setConnectTimeout( timeout * 1000 ) .setSocketTimeout( timeout * 1000 ) のように、1000倍して設定しています。 0 は、無限のタイムアウト、マイナスは、設定しません。(つまりJavaの初期値のまま)- パラメータ:
tout
- タイムアウト時間(秒) (ゼロは、無制限)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
usePost
trueの場合、POSTを使用して接続します(初期値:false)。 通常はGETですが、外部から強制的に、POSTで送信したい場合に、 設定します。 ただし、バイナリファイルをアップロードか、URLの長さ制限が、 2000 を超えた場合は、内部で自動的に、post にします。- パラメータ:
usePost
- true:POST使用/false:通常(GET)- 変更履歴:
- 6.9.0.1 (2018/02/05) 新規作成
-
setAuthJson
jsonによる2フェーズ認証を行う場合の設定。 認証用のデータをJSON形式の文字列で設定します。 urlは、認証するためのURLを指定します。- パラメータ:
json
- 認証用のデータを設定するJSON文字列url
- JSON文字列で認証を行うURL(無ければnull)- 変更履歴:
- 8.0.0.0 (2021/08/31) 新規作成
-
setReqJson
パラメータをJSONで指定する場合に使用します。 JSON形式でパラメータを指定する場合に使用します。 $XXXX$ 文字列は、先のjson認証で取得した各種パラメータを割り当てます。- パラメータ:
json
- JSON文字列のパラメータ- 変更履歴:
- 8.0.0.0 (2021/08/31) 新規作成
-
setDebug
trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)。- パラメータ:
isDebug
- true:デバッグ用のメッセージを出力/false:通常- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
getCode
実行結果のステータスコード 情報を取得します。 結果は、#readData() メソッドをコールしないと取れません。 未実行の場合は、-1 がセットされています。- 戻り値:
- 結果コード 情報
- 関連項目:
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
getMessage
メッセージ 情報を取得します。 結果は、#readData() メソッドをコールしないと取れません。 未実行の場合は、null がセットされています。- 戻り値:
- メッセージ 情報
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
code2Message
HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。 HttpURLConnection の getResponseCode() メソッドにより取得された、HTTPレスポンスコード に対応する文字列を返します。この文字列は、HttpURLConnection で定義された static 定数のコメントを、定義しています。- パラメータ:
code
- HTTPレスポンスコード- 戻り値:
- レスポンスコードに対応する文字列
- 関連項目:
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成, 8.5.5.1 (2024/02/29) switch式の使用
- このメソッドは、nullを返しません
-
main
サンプル実行用のメインメソッドUsage: java org.opengion.fukurou.util.HttpConnect [-post=キー:ファイル名] … url [user:passwd] args[A] : url URLを指定します。GETの場合、パラメータは ?KEY=VALです args[*] : [-param=key:value] POST/GET時のパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-header=key:value] ヘッダーに設定するパラメータのキーと値を:で区切って指定します。(複数回指定可) args[*] : [-auth=user:pass] BASIC認証のエリアへのアクセス時のユーザーとパスワードを指定します args[*] : [-useForm=true/false] 認証方式にFORM認証を指定する場合、trueをセットします(初期値:false) 8.0.0.0 (2021/08/20) args[*] : [-proxy=host:port] proxy を使用する場合のホストとポートを指定します。 args[*] : [-timeout=3] 接続タイムアウト時間を(秒)で指定します(初期値:無指定) args[*] : [-encode=UTF-8] エンコードを指定します。(初期値は UTF-8) args[*] : [-out=ファイル名] 結果をファイルに出力します。初期値は標準出力です args[*] : [-download=ファイル名] ファイル名を指定して、ダウンロードします args[*] : [-upload=ファイル名] ファイル名を指定して、multipart/form-dataでファイルアップロードします
args[*] : [-postRedirect=true] POST時に強制的にリダイレクトを行います(GET時は自動でリダイレクトします)(初期値:false) 7.2.5.0 (2020/06/01)args[*] : [-usePost=true] POSTを強制的に使用する場合にセットします(初期値:false) 8.0.0.0 (2021/08/20) args[*] : [-errEx=true/false] trueの場合、レスポンスコードが、4XX,5XX の時に RuntimeException を投げます(初期値:false) args[*] : [#・・・・] コメント引数。(BATファイル上に残しておきたいが、使用したくない場合など) args[*] : [-debug=true/false] trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)- パラメータ:
args
- コマンド引数配列- 例外:
IOException
- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成, 7.2.5.0 (2020/06/01) postRedirect(POST時に強制的にリダイレクト)引数を追加
-