Chapter4. 拡張関数


4.8 通信関数

関数名
P@INETOPEN
機能
Webサーバに接続する。要求はGETメソッドで行われる。(POSTはない)
書式
P@INETOPEN(URL)
《パラメーター》
URL char。URLを指定する
戻り値 0〜999:Webサーバとの通信エラー。HTTPエラー番号
0〜999以外:通信正常開始。戻り値は通信番号となる。
解説
P@INETOPENでWebサーバに接続し、P@INETRECVで接続したWevサーバからデータを読み込む。
P@INETOPENに指定したURLに接続する。URLに指定する文字列はインターネットブラウザに指定するhttp://〜で始まる形式で指定する。(例「http://www.jppass.com/lgp/」)
続行不能な問題が発生した(メモリ不足、OSの通信機能でエラー)場合はエラーメッセージを出力しプログラムを終了する。続行可能な問題が発生した(相手Webサーバが停止しているとか、指定したコンテンツがない)場合は戻り値として0〜999を返す。この値はHTTP要求のエラーである。(参考:http://www.fellow-ship.com/tech/httperr.html)
正常に通信ができた場合、戻り値として0〜999以外の値が返る。本関数は接続するだけであり、接続したWebサーバからのデータは、戻り値をP@INETRECVに指定することで行う。データの読み込みを完了又は中断する場合には、戻り値をP@INETCLOSEに指定して通信を切断すること。
本関数での接続はGETメソッドで行われる。(POSTメソッドは未実装)
URLの後ろに「?」に続き文字列を記述することで、Webサーバに同メッセージを送ることができる。(例「http://www.jppass.com/lgp/index.html?test=123&data=33」とした場合「test=123&data=33」をWebサーバのCGIで取得可能)
デフォルトでは80番ポートに接続をするが、URLのドメイン名の後ろに「:」に続いてポート番号を指定することで変更することができる。(例「http://www.jppass.com:81/lgp/」)
用例
「http://www.jppass.com/lgp/」のWebコンテンツを読み込み、読み込んだデータ長を表示する。
CH=G@SETUP(400,200,16,1)
IN=P@INETOPEN("http://www.jppass.com/lgp/")
IR$=P@INETRECV(IN,100000)
P@INETCLOSE(IN)
G@PRINT(CH,0,0,STR(LENG(IR$)))
LOOP
  G@FLIP()
ENDLOOP