読者です 読者をやめる 読者になる 読者になる

Xojo日本語ブログ

マルチプラットフォーム対応アプリが開発できるXojoのブログです。

HTTPSecureSocket/HTTPSocketのGET/POST時の返り値について

HTTPSecureSocket/HTTPSocketを使うとGET/POSTが簡単にできます。この時、引数の与え方によって返り値が複数パターンあります。以下はHTTPSecureSocketのGETで書いていますが、HTTPSocketやPOSTも同様です。

非同期で受け取りたい場合

HTTPアクセスをしている間、Xojoアプリが固まってしまうのを防ぐ場合には非同期で処理を行うのが良いでしょう。

HTTPSecureSocket.Get ( URL As String )

URLだけを与えるパターンで、この場合はHTTPSocketのサブクラスを用意し(またはAddHandlerを使って)PageRecieved イベントを実装する必要があります。

非同期でコンテンツをダウンロード

引数にFolderItemを渡すと対象となるURLをダウンロードします。これも非同期処理になります。

HTTPSecureSocket.Get ( URL As String, File As FolderItem )

ダウンロードが完了すると DownloadComplete イベントが実行されます。これもHTTPSocketのサブクラスを用意し(またはAddHandlerを使って)実装しておきます。

同期でコンテンツを取得

同期処理でコンテンツを取得し、内容を文字列で得る際にはタイムアウトを指定します。

HTTPSecureSocket.Get ( URL As String, Timeout As Integer ) As String

タイムアウトは秒数なので 5 などと指定します。0を指定するとタイムアウトなしになります。タイムアウトエラーの場合は処理が終わり、 HTTPSecureSocket.ErrorCode が -1 になります。

同期でコンテンツをダウンロード

最後は同期処理でコンテンツのダウンロードを行う場合です。

HTTPSecureSocket.Get ( URL as string, file As FolderItem, timeout As Integer ) As Boolean

この場合は成否がBooleanで返ってきます。もちろん失敗した場合はFalseになります。


HTTPSecureSocket/HTTPSocketを使えば簡単にWebアクセスを素早く書けますが、引数の与え方によって返り値や処理が同期、非同期と異なるので注意してください。

HTTPSecureSocket.Get - Xojo Documentation

HTTPSecureSocket.Post - Xojo Documentation

HTTPSocket.Get - Xojo Documentation

HTTPSocket.Post - Xojo Documentation