クラス HttpConnect
- java.lang.Object
-
- org.opengion.fukurou.util.HttpConnect
-
public class HttpConnect extends Object
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でファイルアップロードします args[*] : [-postRedirect=true] POST時に強制的にリダイレクトを行います(GET時は自動でリダイレクトします)(初期値:false) 7.2.5.0 (2020/06/01) args[*] : [-errEx=true/false] trueの場合、レスポンスコードが、4XX,5XX の時に RuntimeException を投げます(初期値:false) args[*] : [#・・・・] コメント引数。(BATファイル上に残しておきたいが、使用したくない場合など) args[*] : [-debug=true/false] trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)
※ URLConnect との違い。 -info/-data 等の区別の廃止。(実質、-info がなくなる。) setDownloadFile(String) 追加(-binaryの代用) setUploadFile(String) 追加 proxy 設定の変更- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
- バージョン
- 6.9.0.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK8.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static StringDEFAULT_AGENTUser-Agentの初期値 "openGion with Apache HttpClient"static StringDEFAULT_CHARSETエンコードの初期値 "UTF-8"static StringDEFAULT_LANG言語の初期値 "ja-JP"static intMAX_GET_LENGTHGETで指定するときのURLの長さ制限 2000 (IEの場合は、2,083文字)
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 HttpConnect(String url, String userPass)接続先URLと、認証用ユーザー:パスワードを指定する、コンストラクター 認証が必要ない場合は、userPass は、null でかまいません。
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 voidaddHeaderProperty(String key, String val)Header として、HttpClient にセットするデータを設定します。voidaddRequestProperty(String key, String val)接続先に使用する引数(パラメータ)を追加します。static Stringcode2Message(int code)HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。intgetCode()実行結果のステータスコード 情報を取得します。StringgetMessage()メッセージ 情報を取得します。static voidmain(String[] args)サンプル実行用のメインメソッドStringreadData()URL接続先のデータを取得します。voidsetCharset(String chset)エンコード情報を設定します。voidsetDebug(boolean isDebug)trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)。voidsetDownloadFile(String dwldFile)URL接続先のバイナリファイルをダウンロード取得します。voidsetPostRedirect(boolean useRedirect)trueの場合、POST時に強制的にリダイレクトを行います(初期値:false)。voidsetProxy(String host, int port)指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。voidsetRequestProperty(String keys, String vals)setRequestPropertyでセットするデータを設定します。voidsetTimeout(int tout)接続タイムアウト時間を(秒)で指定します 実際には、org.apache.http.client.config.RequestConfig に対して、 .setConnectTimeout( timeout * 1000 ) .setSocketTimeout( timeout * 1000 ) のように、 1000倍して設定しています。voidsetUploadFile(String upldFile)URL接続先のバイナリファイルをアップロードします。voidusePost(boolean usePost)trueの場合、POSTを使用して接続します(初期値:false)。
-
-
-
コンストラクタの詳細
-
HttpConnect
public HttpConnect(String url, String userPass)
接続先URLと、認証用ユーザー:パスワードを指定する、コンストラクター 認証が必要ない場合は、userPass は、null でかまいません。 接続先URLは、HttpConnect で、urlEncode しますので、そのままの文字列でかまいません。- パラメータ:
url- 接続するアドレスを指定します。(http://server:port/dir/file.html)userPass- ユーザー:パスワード(認証接続が必要な場合)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
-
メソッドの詳細
-
readData
public String readData() throws IOException, MalformedURLException
URL接続先のデータを取得します。 この処理の前に、必要な情報を設定して置いてください。 また、code や message は、このメソッドを実行しないと取得できませんのでご注意ください。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。- 戻り値:
- 接続結果
- 例外:
IOException- 入出力エラーが発生したときMalformedURLException- URLの形式が間違っている場合- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
- このメソッドは、nullを返しません
-
addRequestProperty
public void addRequestProperty(String key, String val)
接続先に使用する引数(パラメータ)を追加します。 これは、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
public void setRequestProperty(String keys, String vals)
setRequestPropertyでセットするデータを設定します。 keys,vals各々、カンマ区切りで分解します。- パラメータ:
keys- パラメータキー(カンマ区切り)vals- パラメータ(カンマ区切り)- 変更履歴:
- 5.10.16.0 (2019/10/04) 追加
-
setProxy
public void setProxy(String host, int port)
指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。 このときに、ヘッダー情報を内部変数に設定しておきます。- パラメータ:
host- 接続するプロキシのホスト名(nullの場合は、登録しません)port- 接続するプロキシのポート番号- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
addHeaderProperty
public void addHeaderProperty(String key, String val)
Header として、HttpClient にセットするデータを設定します。 例えばJSON形式でPOSTする場合は通常"Content-Type", "application/json"を指定します。- パラメータ:
key- パラメータキー(nullの場合は、登録しません)val- パラメータ値(nullの場合は、登録しません)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setDownloadFile
public void setDownloadFile(String dwldFile) throws IOException
URL接続先のバイナリファイルをダウンロード取得します。 取得したファイルは、dwldFile にバイナリのまま書き込まれます。 よって、エンコードの指定は不要です。- パラメータ:
dwldFile- ダウンロードするファイル名。- 例外:
IOException- 入出力エラーが発生したとき- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setUploadFile
public void setUploadFile(String upldFile) throws IOException
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
public void setCharset(String chset)
エンコード情報を設定します。 初期値は、UTF-8 です。- パラメータ:
chset- エンコード情報(nullの場合は、初期値:UTF-8 になります)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
setTimeout
public void setTimeout(int tout)
接続タイムアウト時間を(秒)で指定します 実際には、org.apache.http.client.config.RequestConfig に対して、 .setConnectTimeout( timeout * 1000 ) .setSocketTimeout( timeout * 1000 ) のように、 1000倍して設定しています。 0 は、無限のタイムアウト、マイナスは、設定しません。(つまりJavaの初期値のまま)- パラメータ:
tout- タイムアウト時間(秒) (ゼロは、無制限)- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
usePost
public void usePost(boolean usePost)
trueの場合、POSTを使用して接続します(初期値:false)。 通常はGETですが、外部から強制的に、POSTで送信したい場合に、 設定します。 ただし、バイナリファイルをアップロードか、URLの長さ制限が、 2000 を超えた場合は、内部で自動的に、post にします。- パラメータ:
usePost- true:POST使用/false:通常(GET)- 変更履歴:
- 6.9.0.1 (2018/02/05) 新規作成
-
setPostRedirect
public void setPostRedirect(boolean useRedirect)
trueの場合、POST時に強制的にリダイレクトを行います(初期値:false)。- パラメータ:
useRedirect- true:POST時に強制的にリダイレクト/false:通常- 変更履歴:
- 7.2.5.0 (2020/06/01) postRedirect(POST時に強制的にリダイレクト)
-
setDebug
public void setDebug(boolean isDebug)
trueの場合、適度にデバッグ用のメッセージを出力します(初期値:false)。- パラメータ:
isDebug- true:デバッグ用のメッセージを出力/false:通常- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
getCode
public int getCode()
実行結果のステータスコード 情報を取得します。 結果は、#readData() メソッドをコールしないと取れません。 未実行の場合は、-1 がセットされています。- 戻り値:
- 結果コード 情報
- 関連項目:
readData()- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
getMessage
public String getMessage()
メッセージ 情報を取得します。 結果は、#readData() メソッドをコールしないと取れません。 未実行の場合は、null がセットされています。- 戻り値:
- メッセージ 情報
- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
-
code2Message
public static String code2Message(int code)
HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。 HttpURLConnection の getResponseCode() メソッドにより取得された、HTTPレスポンスコード に対応する文字列を返します。この文字列は、HttpURLConnection で定義された static 定数のコメントを、定義しています。- パラメータ:
code- HTTPレスポンスコード- 戻り値:
- レスポンスコードに対応する文字列
- 関連項目:
HttpURLConnection.HTTP_ACCEPTED- 変更履歴:
- 6.9.0.0 (2018/01/31) 新規作成
- このメソッドは、nullを返しません
-
main
public static void main(String[] args) throws IOException
サンプル実行用のメインメソッド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でファイルアップロードします args[*] : [-postRedirect=true] POST時に強制的にリダイレクトを行います(GET時は自動でリダイレクトします)(初期値:false) 7.2.5.0 (2020/06/01) 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時に強制的にリダイレクト)引数を追加
-
-