プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > FileDownload > Macro > Ex: Command > Http-Post

 
 Ex:Http-Postコマンド
Download Top | Macro Top | Command | ExCommand  


 

書式


Ex:Http-Post:   url=(url_string)   base=(refer_string)   userAgent=(userAgent_string)   acceptLanguage=(acceptLanguage_string)   post=(post_string)   cType=(contentType_string)   postEncode=(encode_string)   autoRefreshSec=(httpEquivRefreshTime_second)   minimumWaitSec=(timeout_second)   totalWaitSec=(total_timeout_second)   O:text=str[(text_index)]   O:bin=str[(filename_index)]   O:result=int[(result_index)]   O:lastUrl=str[(lastUrl_index)]   O:cType=str[(contentType_index)]   O:ext=str[(fileExtension_index)]  

Http-Postで、指定したURLのページを取得します。
url=post= 以外の指定は省略可能です。


プロキシについて

テキストフォーム環境設定面で、 プロキシ設定を行っていた場合、 そのプロキシを使用したアクセスになります。
ただし、 「プロセルピナ」 version1.05 以降で追加された proxy=preResolve= パラメータにより、 それに優先して使用するプロキシを コマンド内で指定することが可能です。
詳しくは、 Ex:Http-Getコマンド、Ex:Http-Postコマンドでのプロキシ指定 を参照してください。

入力
url= : string, アクセスするURL
base= : string, Refererヘッダに設定するURL
userAgent= : string, UserAgentヘッダに設定するURL
acceptLanguage= : string, Accept-Languageヘッダに設定する値
post= : string, ポストする文字列
cType= : string, Content-Typeヘッダ設定値
postEncode= : string, ポストする文字列のエンコード
autoRefreshSec= : int, http-equiv-Refreshの自動転送許容値[秒]
minimumWaitSec= : int, 許容する最大無受信間隔[秒]
totalWaitSec= : int, http-Postの最大完了待ち時間[秒]

出力
O:text= : string, テキスト応答された内容を設定する文字列配列
O:bin= : string, 応答を格納したファイル名を設定する文字列配列
O:result= : int, サーバ応答を格納する整数配列のインデックス
O:lastUrl= : string, 最終的なURLを格納する文字列配列のインデックス
O:cType= : string, 応答ヘッダのContentType
O:ext= : string, ContentTypeから最適と判断されるファイル拡張子


このページで特に記述がないパラメータは Ex:Http-Getコマンド と同じ説明になります。
詳細はEx:Http-Getコマンドを参照してください。


Content-Type値
Http-Postの Content-Typeヘッダ に設定される値は、 cType= で指定します。
cType= の設定を省略した場合、Content-Typeヘッダには
  application/x-www-form-urlencoded
の値が設定されます。
Postデータをmultipart/form-dataの形式にする場合は省略することができません。
cType= には、boundaryの指定も含めた文字列を指定します。 次のような文字列を指定することになります。
  multipart/form-data; boundary=99999999999;
Postデータに含まれるboundaryと、cType= で指定するboundaryに不一致がないようにしなければなりません。

・  ポストするデータは、post= で指定します。 この文字列は、postEncode= で指定した文字セット(Shift_JIS, EUC-JP, etc)でエンコードされます。
postEncode=の設定を省略した場合、ポストデータの文字列は UTF-8 でエンコードされます。
post= には bin[ ] や binl[ ] のバイナリ変数で設定することもできます。 この場合、postEncode=の設定は不要です(指定は無視されます)。

・  303-SeeOtherなどによる転送指示も、 Ex:Http-Getコマンド での処理と同じように自動で処理されます。   Ex:Http-Getコマンドとの違いは、最初の一回目の送信が Http-Post で行われることです。


・  参考: Ex:Http-Getコマンド
・  参考: Ex:CreateFormDataコマンド

 

記述例


例1:

例2:

上記「例2」において、O:binで指定した str[102] に設定される文字列は、ファイル名になります。

 

Sample


次に示す例では、 http://www.example.com/download/get_object.cgi のURLに、 ポストする文字列を
  pass=(パスワード)&object_id=12345&mail=myname@example.com
と設定してHttp-Postアクセスし、正常終了した場合に 「Got it.」 と表示します。
サーバから 503応答(Temporarily Unable) された場合は3秒(3000[msec])間待った後、再度同じURLにアクセスしています。
応答コードが得られない場合は 「Access Error!」 と表示して終了します。



Content-Typeが multipart/form-data の場合のPostデータの作成には、 Ex:CreateFormDataコマンド を使用することができます。
Ex:CreateFormDataコマンドO:cTypeの出力は、 そのままEx:Http-PostコマンドのcTypeの入力に指定できます。


次の例は、post= にバイナリ値で設定する例を示しています。
Ex:FormAnalyser.GetMultipartFormDataコマンドで、 Postデータとして設定する値を EUC-JPでエンコードされたバイナリ値として、 binl["pData"] に設定しています。 これを、Ex:Http-Postコマンドの post= に指定します。
また、同じ Ex:FormAnalyser.GetMultipartFormDataコマンドで、 strl["cType"] の文字列変数に Content-Type値 を取得していますが、 この値はそのまま Ex:Http-Postコマンドの cType= に指定することができます。


post=にバイナリで指定する例

【説明】 この例は、str[100] の文字列変数にhtmlのソースコードが設定されていて、そのページを取得するURLが str["las"] だった場合です。
Ex:FormAnalyser.FindFormByAttributeコマンドで、 str[100] からidアトリビュートがdownloadに設定されているformを探し、 Ex:FormAnalyser.Setコマンドで、download_passの名前を持つテキストエリアに passw の文字列を設定し、 Ex:FormAnalyser.GetMultipartFormDataコマンドで EUC-JPエンコードされたform全体の値を binl["pData"] に設定しています。


[BACK]
プロセルピナ