Post方式HttpまたはWebserverへのアクセス


Post(handle,messageno,word,long)は、指定されたメッセージをあるウィンドウのメッセージキューに追加します.このウィンドウはPowerBuilderアプリケーションのウィンドウでも、他のアプリケーションのウィンドウでもあります.
パラメータ:handle:longタイプ、ウィンドウのシステムハンドルを指定し、メッセージmessageno:UnsignedIntegerタイプをこのウィンドウに郵送し、郵送するメッセージ番号word:longタイプを指定し、メッセージとともに郵送するwordクラスパラメータ値を指定します.Messagenoパラメータで指定されたメッセージがこのパラメータを使用しない場合は、このパラメータの値を0 long:longタイプまたはstringに設定し、メッセージとともに郵送されるlong型パラメータ値または文字列戻り値Booleanを指定します.パラメータの値がNULLの場合、Post()関数はNULLを返します.
使用方法:Post()関数は、PowerBuilderアプリケーションのウィンドウであってもよいし、他のアプリケーションのウィンドウであってもよい非PowerBuilder事前定義イベントのメッセージをウィンドウに送信するために使用されます.Post()関数は、送信されたメッセージを指定したウィンドウメッセージキューの末尾に配置し、対応するイベントイベントハンドラの実行を待たずにアプリケーションに戻ります.これはSend()関数とは異なり,Send()関数は指定されたウィンドウに対応するイベントを直接トリガし,イベントハンドラを実行して呼び出しアプリケーションに戻る.したがって,Post()関数は非同期方式を採用し,Send()関数は同期方式を採用すると述べた.Post()関数のパラメータhandleはメッセージを受信するウィンドウハンドルを指定し、PowerBuilderウィンドウではHandle()関数を使用してそのハンドルを得ることができます.他のアプリケーションのウィンドウでは、システムAPI関数を呼び出してウィンドウを検索し、対応するウィンドウのハンドルを得ることができます.アプリケーションがPowerBuilder定義イベント(事前定義イベントとユーザー定義イベントを含む)を郵送する場合は、PostEvent()関数を使用すると簡単で便利です.アプリケーションがlongパラメータの場所で文字列を指定すると、Post()関数は文字列のコピーをコピーし、コピーのアドレスを指定ウィンドウに転送します.
POSTとGETの違い:
1. get          ,post         。
	2. get               ACTION     URL ,             , URL     。post   HTTP post  ,               HTML HEADER      ACTION     URL  。         。
	3.   get  ,     Request.QueryString      ,  post  ,     Request.Form       。
	4. get        ,    2KB。post        ,          。    ,IIS4     80KB,IIS5  100KB。
	5. get      ,post     。        Post   。 

		1、get       Post     ,        ,   Post      ;
	2、       ,   Get  ;       、      ,   Post  ;

HTTPプロトコルのPOST方法
GET法と同様に,POST法もHTTPプロトコルの重要な構成部分である.POSTメソッドは、一般に、宛先サーバに要求を発行し、要求エンティティを添付するために使用される.POSTは、以下の機能を統一的な方法で実現するように設計されている.       o既存資源に対する注釈(Annotation of existing resources);       o電子掲示板、ニュースグループ、メールリストまたは類似討論グループにメッセージを送信する.       o表(form)の結果をデータ処理プロセスにコミットするなどのデータブロックをコミットする.       o追加操作によりデータベースを拡張する.       oファイルのアップロードにも使用できます.  すべてのHTTPのPOSTリクエストでは、正当なコンテンツ長(Content-Longth)を指定する必要があります.HTTP/1.0サーバが要求メッセージの内容を受信したときに長さを特定できない場合、400(不正な要求)コードが返されます.  アプリケーションは、アプリケーションとしてサーバが将来のリクエストにどのように応答するかを知ることができないため、POSTリクエストに対する応答をキャッシュできません.  POST方式とGET方式の最大の違いは,送信されたデータとURIアドレスを分離することである.要求パラメータはhttpヘッダーの異なる部分(entity bodyという名前)で送信されるため、Content-typeをアプリケーション/x-www-form-urlencodedに設定する必要があります.Postリクエストフォーマットは、POST/login.asp HTTP/1.1 Accept:*/*Refer: URL Accept-Language: zh-cn,en-us;q=0.5 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; .NET CLR 1.0.3705; .NET CLR 1.1.4322) Host: www.wantsoft.com Content-Length: 35 Pragma: no-cache Cache-Control: no-cache username=wantsoft&password=password  //postのデータ応答フォーマットは、HTTP/1.1 200 OK Server:Microsoft-IS/5.1 Date:Fri,05 Dec 2008 15:44:38 GMT Content-Longth:27 Content-Type:text/html Cache-control:private welcome to www.wantsoft.com        //Webページの本文