org.opengion.fukurou.util

## クラス URLConnect

- java.lang.Object
- - org.opengion.fukurou.util.URLConnect

- 直系の既知のサブクラス:
    SOAPConnect

      public class URLConnect
      extends java.lang.Object

  URLConnect は、指定のURL にアクセスして、情報/データを取得します。 setMethodOverrideでX-HTTP-Method-Overrideの設定が可能です。 URL へのアクセスにより、エンジンでは各種処理を実行させることが可能になります。 例えば、帳票デーモンの起動や、長時間かかる処理の実行などです。 なお、URLに引数が付く場合は、ダブルコーテーションで括って下さい。 - 付き引数は、指定順番は、関係ありません。- 無し引数(url,user:passwd)は、 順番があります。 Usage: java org.opengion.fukurou.util.URLConnect [-info/-data] … url [user:passwd] args[*] : [-info/-data] 情報の取得か、データの取得かを指定します(初期値:-data)。 args[*] : [-post=ファイル名] POSTメソッドを指定して、ファイルデータを送信します(初期値:-get)。 args[*] : [-encode=UTF-8] エンコードを指定します(通常は接続先のencodeを使用)。 args[*] : [-out=ファイル名] 結果を指定されたファイルエンコードでファイルに出力します。 args[*] : [-errEx=true/false] trueの場合、ﾚｽﾎﾟﾝｽｺｰﾄﾞが、4XX,5XX の時に RuntimeException を投げます(初期値:false)。 args[A] : url ＵＲＬを指定します。GETの場合、パラメータは ?KEY=VALです。 args[B] : [user:passwd] BASIC認証のエリアへのアクセス時に指定します。 ※ プロキシ設定の３つの方法 プロキシ設定には、３つの方法があります。 1. URL url = URL( "http",proxyHost,proxyPort, url ); URLConnection urlConn = url.openConnection(); 2. SocketAddress scaddr = new InetSocketAddress( proxyHost, proxyPort ); Proxy proxy = new Proxy( Proxy.Type.HTTP, scaddr ); URL url = new Url( url ); URLConnection urlConn = url.openConnection( proxy ); 3. System.setProperty( "http.proxyHost",host ); System.setProperty( "http.proxyPort",String.valueOf( port ) ); URL url = new Url( url ); URLConnection urlConn = url.openConnection(); System.clearProperty( "http.proxyHost" ); System.clearProperty( "http.proxyPort" ); 1. 、2. の方法は、urlConn.getContentType() を実行すると、エラーになります。(原因不明) 3. の方法では、マルチスレッドで実行する場合に、問題が発生します。 本クラスでは、方法２ を使用しています。
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `URLConnect(java.lang.String url, java.lang.String pass)` コンストラクター

  - ### メソッドのサマリー

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `static java.lang.String` | `code2Message(int code)` HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。
    `void` | `connect()` 指定のURLに対して、コネクトします。
    `void` | `disconnect()` サーバへのほかの要求が今後発生しそうにないことを示します。
    `java.lang.String` | `getCharset()` キャラクタ 情報を取得します。
    `int` | `getCode()` 結果コード 情報(HttpURLConnection)を取得します。
    `protected java.net.URLConnection` | `getConnection()` URL と ユーザー：パスワードを与えて、URLConnectionを返します。
    `long` | `getDate()` 作成日時 情報を取得します。
    `java.io.InputStream` | `getInputStream()` 接続先のデータの入力ストリームを取得します。
    `long` | `getLength()` データ量 情報を取得します。
    `java.lang.String` | `getMessage()` メッセージ 情報(HttpURLConnection)を取得します。
    `java.lang.String` | `getMethod()` メソッド 情報(HttpURLConnection)を取得します。
    `long` | `getModified()` 更新日時 情報を取得します。
    `java.io.BufferedReader` | `getReader()` 接続先のデータのリーダーを取得します。
    `java.lang.String` | `getType()` タイプ 情報を取得します。
    `java.lang.String` | `getUrl()` URL 情報を取得します。
    `static void` | `main(java.lang.String[] args)` サンプル実行用のメインメソッド Usage: java org.opengion.fukurou.util.URLConnect [-info/-data] … url [user:passwd] args[*] : [-info/-data] 情報の取得か、データの取得かを指定します(初期値:-data)。
    `protected javax.net.ssl.HttpsURLConnection` | `openHttpsConnection(java.net.URL url, java.net.Proxy proxy)` https接続 指定のurlに対して、https接続を行います。
    `java.lang.String` | `readData()` 接続先のデータを取得します。
    `void` | `setCharset(java.lang.String chset)` キャラクタ 情報を設定します。
    `void` | `setConentType(java.lang.String ctype)` 送信ヘッダのContent-Typeを設定します。
    `void` | `setMethodOverride(java.lang.String mtd)` 送信するためのメソッドを上書き指定します。
    `void` | `setPostData(java.lang.String data)` POSTするデータを設定します。
    `void` | `setProxy(java.lang.String host, int port)` 指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。
    `void` | `setRequestProperty(java.lang.String keys, java.lang.String vals)` setRequestPropertyでセットするデータを設定します。
    `void` | `setTimeout(int tout)` 接続タイムアウト時間を(秒)で指定します 実際には、java.net.URLConnection#setConnectTimeout(int) に 1000倍して設定されます。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### URLConnect

          public URLConnect(java.lang.String url,
                            java.lang.String pass)

      コンストラクター
      パラメータ:
        `url` - 接続するアドレスを指定します。(http://server:port/dir/file.html)
        `pass` - ユーザー：パスワード(認証接続が必要な場合)

  - ### メソッドの詳細

    - #### setProxy

          public void setProxy(java.lang.String host,
                               int port)

      指定のURLに対して、コネクトするのに使用するプロキシ設定を行います。 このときに、ヘッダー情報を内部変数に設定しておきます。
      パラメータ:
        `host` - 接続するプロキシのホスト名
        `port` - 接続するプロキシのポート番号

    - #### connect

          public void connect()
                       throws java.io.IOException

      指定のURLに対して、コネクトします。 このときに、ヘッダー情報を内部変数に設定しておきます。
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        4.0.1.0 (2007/12/12) Postで複数キーを使えるように修正
        5.1.6.0 (2010/05/01) charsetを指定できるようにする

    - #### readData

          public java.lang.String readData()
                                    throws java.io.IOException

      接続先のデータを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。 本来は、Stream のまま処理することで、バイナリデータも扱えますが、ここでは、 テキストデータ(String)に変換して使用できるデータのみ扱えます。
      戻り値:
        接続結果
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### disconnect

          public void disconnect()

      サーバへのほかの要求が今後発生しそうにないことを示します。

    - #### getConnection

          protected java.net.URLConnection getConnection()
                                                  throws java.io.IOException

      URL と ユーザー：パスワードを与えて、URLConnectionを返します。 ユーザー：パスワード が null でない場合は、BASCI認証エリアへのアクセスの為、 BASE64Encoder を行って、Authorization プロパティーを設定します。 ここで返す URLConnection は、すでに、connect() メソッド実行済みの リモート接続が完了した状態のオブジェクトです。
      戻り値:
        URLConnectionオブジェクト
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.8.3.0 (2015/01/09) ヘッダ等指定のためにsetRequestPropertyの値を指定できるようにします。
        5.8.8.1 (2015/06/12) timeout属性追加
        5.10.10.0 (2019/03/29) methodOverride指定
        5.10.10.2 (2019/04/12) contentType追加
        5.10.19.0 (2019/12/27) https対応
        5.11.0.0 (2021/05/17) Base64をjava標準に変更

    - #### openHttpsConnection

          protected javax.net.ssl.HttpsURLConnection openHttpsConnection(java.net.URL url,
                                                                         java.net.Proxy proxy)
                                                                  throws java.io.IOException

      https接続 指定のurlに対して、https接続を行います。 自己証明書でも接続可能にするために、 証明書のチェックを無効にしています。
      パラメータ:
        `url` - 接続先
        `proxy` - プロキシ設定
      例外:
        `IOExeption`
        `java.io.IOException`
      変更履歴:

        5.10.19.0 (2019/12/27) 新規追加

    - #### getUrl

          public java.lang.String getUrl()

      URL 情報を取得します。
      戻り値:
        URL情報
      変更履歴:

        4.3.4.4 (2009/01/01) メソッド名変更

    - #### setRequestProperty

          public void setRequestProperty(java.lang.String keys,
                                         java.lang.String vals)

      setRequestPropertyでセットするデータを設定します。 keys,vals各々、カンマ区切りで分解します。
      パラメータ:
        `keys` - パラメータキー（カンマ区切り）
        `vals` - パラメータ（カンマ区切り）
      変更履歴:

        5.8.3.0 (2007/12/22) 追加

    - #### setPostData

          public void setPostData(java.lang.String data)

      POSTするデータを設定します。 POSTする場合は、connect() 処理を行う前に、データを設定しておく必要があります。 PUT,DELETEの場合もこのメソッドでデータ設定を行います。
      パラメータ:
        `data` - POSTデータ
      変更履歴:

        4.1.0.0 (2007/12/22) キーと値のセットを取得するよう変更

    - #### getType

          public java.lang.String getType()

      タイプ 情報を取得します。
      戻り値:
        タイプ 情報

    - #### getLength

          public long getLength()

      データ量 情報を取得します。
      戻り値:
        データ量 情報

    - #### getDate

          public long getDate()

      作成日時 情報を取得します。
      戻り値:
        作成日時

    - #### getModified

          public long getModified()

      更新日時 情報を取得します。
      戻り値:
        更新日時

    - #### getCode

          public int getCode()

      結果コード 情報(HttpURLConnection)を取得します。
      戻り値:
        結果コード 情報

    - #### getMethod

          public java.lang.String getMethod()

      メソッド 情報(HttpURLConnection)を取得します。
      戻り値:
        メソッド 情報

    - #### getMessage

          public java.lang.String getMessage()

      メッセージ 情報(HttpURLConnection)を取得します。
      戻り値:
        メッセージ 情報

    - #### getCharset

          public java.lang.String getCharset()

      キャラクタ 情報を取得します。
      戻り値:
        キャラクタ 情報

    - #### setCharset

          public void setCharset(java.lang.String chset)

      キャラクタ 情報を設定します。
      パラメータ:
        `chset` - キャラクタ 情報

    - #### setTimeout

          public void setTimeout(int tout)

      接続タイムアウト時間を(秒)で指定します 実際には、java.net.URLConnection#setConnectTimeout(int) に 1000倍して設定されます。 0 は、無限のタイムアウト、マイナスは、設定しません。(つまりJavaの初期値のまま)
      パラメータ:
        `tout` - タイムアウト時間(秒) (ゼロは、無制限)
      関連項目:
        `URLConnection.setConnectTimeout(int)`
      変更履歴:

        5.8.8.1 (2015/06/12) timeout属性追加

    - #### setMethodOverride

          public void setMethodOverride(java.lang.String mtd)

      送信するためのメソッドを上書き指定します。 RESTでPUTやDELETE等を指定する必要がある場合に利用します。 メソッドそのものはPOSTですが、ヘッダのX-HTTP-Method-Overrideに追加指定します。 送信先サーバがOverrideに対応している必要があります。
      パラメータ:
        `mtd` - 送信メソッド
      変更履歴:

        5.10.10.0 (2019/03/29)

    - #### setConentType

          public void setConentType(java.lang.String ctype)

      送信ヘッダのContent-Typeを設定します。 送信先で指定がない場合は特にセットする必要はありません。
      パラメータ:
        `ctype` - コンテントタイプ

    - #### getReader

          public java.io.BufferedReader getReader()
                                           throws java.io.IOException

      接続先のデータのリーダーを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。
      戻り値:
        接続結果のリーダー
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき

    - #### getInputStream

          public java.io.InputStream getInputStream()
                                             throws java.io.IOException

      接続先のデータの入力ストリームを取得します。 この処理の前に、connect() 処理を実行しておく必要があります。 取得したデータは、指定のURL へのアクセスのみです。 通常のWebブラウザは、イメージや、JavaScriptファイル、CSSファイルなど、 各種ファイル毎にHTTP接続を行い、取得して、レンダリングします。 このメソッドでの処理では、それらのファイル内に指定されているURLの 再帰的な取得は行いません。 よって、フレーム処理なども行いません。
      戻り値:
        接続結果の入力を出力します。
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.4.2.0 (2011/12/01) 新規追加

    - #### code2Message

          public static java.lang.String code2Message(int code)

      HttpURLConnection のレスポンスコードに対応するメッセージ文字列を返します。 HttpURLConnection の getResponseCode() メソッドにより取得された、HTTPレスポンスコード に対応する文字列を返します。この文字列は、HttpURLConnection で定義された static 定数のコメントを、定義しています。
      パラメータ:
        `code` - HTTPレスポンスコード
      戻り値:
        レスポンスコードに対応する文字列
      関連項目:
        `HttpURLConnection.HTTP_ACCEPTED`
      変更履歴:

        5.6.7.0 (2013/07/27) レスポンスコード例 追加

    - #### main

          public static void main(java.lang.String[] args)
                           throws java.io.IOException

      サンプル実行用のメインメソッド Usage: java org.opengion.fukurou.util.URLConnect [-info/-data] … url [user:passwd] args[*] : [-info/-data] 情報の取得か、データの取得かを指定します(初期値:-data)。 args[*] : [-post=ファイル名] POSTメソッドを指定して、ファイルデータを送信します(初期値:-get)。 args[*] : [-encode=UTF-8] エンコードを指定します(通常は接続先のencodeを使用) args[*] : [-out=ファイル名] 結果をファイルに出力します。ファイルエンコードも指定します。 args[*] : [-errEx=true/false] trueの場合、ﾚｽﾎﾟﾝｽｺｰﾄﾞが、4XX,5XX の時に RuntimeException を投げます(初期値:false)。 args[A] : url ＵＲＬを指定します。GETの場合、パラメータは ?KEY=VALです。 args[B] : [user:passwd] BASIC認証のエリアへのアクセス時に指定します。
      パラメータ:
        `args` - コマンド引数配列
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.6.7.0 (2013/07/27) -errEx 追加

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.