インターネットアクセス
概要:これらのルール群は、インターネットにアクセスするためのシンプルで便利な機能を提供します。ルールを有効にするためには、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)).