インターネットアクセス

Topへ

概要:これらのルール群は、インターネットにアクセスするためのシンプルで便利な機能を提供します。ルールを有効にするためには、etiinet.dllをロードする必要があります。

述語名/引数 (inet:Get *URL *text)
(inet:Get *URL *id * pass *text)
要約 文字列*URLで指定されたアドレスのHTML文書を取得します。
後者の形式は、パスワードを要求されるページへのアクセス用です。
互換性 Win
解説 *URLにはhttp:またはhttpsで始まる文字列を指定します。

例:

(inet:Get "http://assam.cims.hokudai.ac.jp" *)
 

 


述語名/引数 (inet:GetAsFile *URL *file)
要約 *URLで指定されたインタネット上のリソースを取得し、ファイル*fileに保存します。
互換性 Win
解説 リソースはバイナリモードで転送されます。

例:

(inet:GetAsFile "http://assam.cims.hokudai.ac.jp" "test.html")

 


述語名  (inet:Post *URL *text)
 (inet:Post *URL *mediaType *header *body *result)
要約 *URLをPOSTします。
互換性 Win
引数 *URL [in] アクセスするURL。第一形式ではパラメータをinet:Get/2同形式で与えます。第二形式ではパラメータは*bodyで与えます。
*text [out] 第一形式の結果を表す文字列。
*mediaType [in] クラインとがアクセスるメディアタイプを表す文字列。指定可能な文字列はhttp://www.iana.org/assignments/media-types/を参照でください。
*header [in] POSTの際に送信するヘッダーを表す文字列。ヘッダを送る必要がない場合は""を指定。
*body [in] POSTの際に送信するデータを表す8ビットキャラクター配列。
*result [out] 結果を表す8ビットキャラクター配列。
成功/失敗 true  POSTに成功し、返り値に関する引数(*text, *result)のマッチングに成功した。
false 上記以外。
解説 第一形式では、*URLにはGETメソッドで用いられる形式と同じものを指定します。具体的には、"http://foo.or.jp/dir/?name1=val1&name2=va2"のような形式になります。第二形式では無視されます。
データを無変換で送受信するには第二形式を用いてください。

例1:
以下の例では、データをエンコードしてポストします。送信先のサーバには"name1=val1&name2=val2"というデータがPOSTメソッドで送信されます。

(cgi_encode (("name1" "val1")("name2" "val2")) *ed)(sprintf *URL "http://assam.cims.hokudai.ac.jp?%s" (*ed))(inet:Post *URL *result)

 

例2:

Webサービスでmicrosoftに関する検索を行う例です。etiinet.dllとxml.dllをあらかじめロードしておく必要があります。

(get *result)-->
    (stringToArray "<?xml version=\"1.0\" encoding=\"UTF-16LE\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><SearchWord xmlns=\"http://www.iwebmethod.net\"><query>microsoft</query><partial>true</partial></SearchWord></soap:Body></soap:Envelope>" *body),
    (getArraySize *body *size),
    (sprintf *header "Host: www.iwebmethod.net\r\nContent-Type: text/xml; charset=UTF-16LE\r\nContent-Length: %d\r\nSOAPAction: \"http://www.iwebmethod.net/SearchWord\"\r\n" (*size)),
    (inet:Post
        "http://www.iwebmethod.net/icd1.0/icd.asmx"
        "text/xml"
        *header
        *body
        *result),
    (xml:sread *result *result2),
    (format "/a\n" (*result2)).