第1項. HTTP接続機能

各種HTTP接続を行う機能を説明する。HTTP接続を行うためにはRho::AsyncHttpモジュールを使用必要があります。

 1. GETリクエストを行う

WebサービスへのGETリクエストを行うには、Rho::AsyncHttp.getメソッドを使用する。

 

Rho::AsyncHttp.get(options)

 

optionsには、GETリクエストを行う際のオプションを指定することができる。指定できるオプションは以下とする。

 

  • ● :url ・接続先のURLを設定する。
  • ● :headers ・接続を行うときのヘッダ情報を設定する。
  • ● :callback ・接続処理後のコールバック先のURLを設定する。
  • ● :callback_param ・接続処理後のコールバック先へ渡すパラメータを設定する。
  • ● :authentication ・各種認証に関する値を設定する。指定できる値は以下とする。
    • ・:type - 認証機能の種類(例: :basic)
    • ・:username ・認証に使用するユーザ名
    • ・:password ・認証に使用するパスワード
  • ● :ssl_verify_peer ・署名の検証を行うかどうか。tureかfalseを設定する。

 

例: コントローラ


def get_request
  Rho::AsyncHttp.get(
    :url => “http://localhost/”,
    :callback_url => :get_request_callback
  )
end
def get_request_callback
  if @params[“status”] == “ok”
    puts @params[“body”]
    WebView.navigate(url_for(:action => :index))
  else
    puts “error”
  end
end


 2. POST送信を行う

WebサービスへのPOST送信を行うには、Rho::AsyncHttp.postメソッドを使用する。

 

Rho::AsyncHttp.post(options)

 

optionsには、POST送信を行う際のオプションを指定することができる。指定できるオプションは以下とする。

 

  • ● :url ・接続先のURLを設定する。
  • ● :headers ・接続を行うときのヘッダ情報を設定する。
  • ● :body - 送信する値を設定する。
  • ● :callback ・接続処理後のコールバック先のURLを設定する。
  • ● :callback_param ・接続処理後のコールバック先へ渡すパラメータを設定する。
  • ● :authentication ・各種認証に関する値を設定する。指定できる値は以下とする。・:type - 認証機能の種類(例: :basic)
    • ・:username ・認証に使用するユーザ名
    • ・:password ・認証に使用するパスワード
  • ● :ssl_verify_peer ・署名の検証を行うかどうか。tureかfalseを設定する。

 

例: コントローラ


def post_request
  Rho::AsyncHttp.post(
    :url => “http://localhost/”,
    :callback_url => :post_request_callback,
    :body => “id=5”
  )
end
def post_request_callback
  if @params[“status”] == “ok”
    puts @params[“body”]
    WebView.navigate(url_for(:action => :index))
  else
    puts “error”
  end
end

 3. ファイルのダウンロードを行う

Webサービスからファイルのダウンロードを行うには、Rho::AsyncHttp.download_fileメソッドを使用する。

 

Rho::AsyncHttp.download_file(options)

 

optionsには、ダウンロード行う際のオプションを指定することができる。指定できるオプションは以下とする。


● :url ・接続先のURLを設定する。
● :headers ・接続を行うときのヘッダ情報を設定する。
● :filename - ダウンロード後のファイルを保存するパスを設定する。
● :callback ・接続処理後のコールバック先のURLを設定する。
● :callback_param ・接続処理後のコールバック先へ渡すパラメータを設定する。
● :authentication ・各種認証に関する値を設定する。指定できる値は以下とする。

  • ・:type - 認証機能の種類(例: :basic)
  • ・:username ・認証に使用するユーザ名
  • ・:password ・認証に使用するパスワード

● :ssl_verify_peer ・署名の検証を行うかどうか。tureかfalseを設定する。

 

例: コントローラ


def download
  file_name = File.join(Rho::RhoApplication::get_base_app_path, 'test.txt')
  Rho::AsyncHttp.download_file(
    :url => “http://localhost/”,
    :filename => file_name
    :callback_url => :download_callback,
    :body => “id=5”
  )
end
def download_callback
  if @params[“status”] == “ok”
    puts @params[“body”]
    WebView.navigate(url_for(:action => :index))
  else
    puts “error”
  end
end

 4. ファイルのアップロードを行う

Webサービスへファイルのアップロード行うには、Rho::AsyncHttp.upload_fileメソッドを使用する。

 

Rho::AsyncHttp.upload_file(options)

 

optionsには、ダウンロード行う際のオプションを指定することができる。指定できるオプションは以下とする。

 

  • ● :url ・接続先のURLを設定する。
  • ● :headers ・接続を行うときのヘッダ情報を設定する。
  • ● :filename ・アップロードを行うファイルのパスを設定する。
  • ● :body - アップロードを行うときにサーバへ送信する値を設定する。
  • ● :callback ・接続処理後のコールバック先のURLを設定する。
  • ● :callback_param ・接続処理後のコールバック先へ渡すパラメータを設定する。
  • ● :authentication ・各種認証に関する値を設定する。指定できる値は以下とする。・:type - 認証機能の種類(例: :basic)
    • ・:username ・認証に使用するユーザ名
    • ・:password ・認証に使用するパスワード
  • ● :ssl_verify_peer ・署名の検証を行うかどうか。tureかfalseを設定する。

 

例: コントローラ


def upload
  file_name = File.join(Rho::RhoApplication::get_base_app_path, 'test.txt')
  Rho::AsyncHttp.upload_file(
    :url => “http://localhost/”,
    :filename => file_name
    :callback_url => :upload_callback,
    :body => “id=5”
  )
end
def upload_callback
  if @params[“status”] == “ok”
    puts @params[“body”]
    WebView.navigate(url_for(:action => :index))
  else
    puts “error”
  end
end


 5. HTTP接続を中止する

接続中の状態を中止するには、Rho::AsyncHttp.cancelメソッドを使用する。

 

Rho::AsyncHttp.cancel


 6. 接続後のコールバック先に渡される値について

接続後のコールバック先に渡される値の説明をする。
渡される値は以下とする。

 

  • ● “body” - HTTP接続のレスポンスのbody要素を返す。
  • ● “headers” - ハッシュ形式でHTTP接続のレスポンスのヘッダー情報を返す。
  • ● “cookies” - HTTP接続のレスポンスのクッキー情報を返す。
  • ● “http_error” - HTTP接続のレスポンスコードを返す。
システム工房エムのサイトへのリンク

住所〒690-0017 島根県松江市西津田3-2-3 TEL.0852-23-8590 FAX.0852-23-8591
Copyright 2008-2010 System Maker M,All right reserved