ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     URLLoaderのPOST指定
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
bobo
投稿日時: 2009-4-17 8:36
ご主人様
登録日: 2008-10-28
居住地:
投稿: 235
URLLoaderのPOST指定
こんにちは。

URLLoaderを使ってHTTP通信していますが、サーバ管理者からGETしていると言われました。
URLLoaderのプロパティにはPOST,GET指定可能な項目が見当たらないのですが、どのように指定するのでしょうか?

単純にformタグを用意するだけでしょうか??
よろしくお願いします。
goki
投稿日時: 2009-4-17 8:38
ご主人様
登録日: 2007-8-27
居住地: おかのよこはま
投稿: 735
Re: URLLoaderのPOST指定
bobo
投稿日時: 2009-4-17 9:28
ご主人様
登録日: 2008-10-28
居住地:
投稿: 235
Re: URLLoaderのPOST指定
ありがとうございます。URLRequest側でしたか。

ld=new URLLoader();
var jj: URLRequest = new URLRequest();
jj.url = url;
jj.method = URLRequestMethod.POST;
ld.load(jj);

確認できました。
ありがとうございました。

*****************************************

やはり、まだGETになっているとの事でした・・。
何が原因なのでしょうか??
bobo
投稿日時: 2009-5-26 18:59
ご主人様
登録日: 2008-10-28
居住地:
投稿: 235
Re: URLLoaderのPOST指定
古くなってしまいましたが、未だPOSTを認識できない状態です。
POSTにする事が必須となってしまいました。

jj.method = URLRequestMethod.POST;
明示的にPOSTを記述してるわけで、サーバ側からGETのままと言われても・・。

何が悪く、どこを確認すればよいのでしょうか?
ほとほと、参ってます。。

clipInfold_UNLOAD();
clipInfold=new URLLoader();
clipInfold.addEventListener(Event.COMPLETE,showIt);
clipInfold.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpStatusHandler);
clipInfold.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
clipInfold.addEventListener(SecurityErrorEvent.SECURITY_ERROR,scErrorHandler);

var jj: URLRequest = new URLRequest();
jj.url = url;
jj.method = URLRequestMethod.POST;
clipInfold.load(jj);

よろしくお願いします!

**************************************

また、POSTでデータを送信する時ですが、
http:/hogehoge.com?param=1111¶m2=22222
と言うURL書式はではいけないのでしょうか?

サンプルではちゃんと
<mx:Form id="myForm">

<mx:FormItem label="てすと">
<mx:TextInput id="param"/>
<mx:TextInput id="param2"/>
</mx:FormItem>

</mx:Form>

と、formを使用していたのですが、送信ロジックで
var req:URLRequest = new URLRequest(url);
req.method = URLRequestMethod.POST;

var params:URLVariables = new URLVariables();
params.param = param.text;
params.param2 = param2.text;
req.data = params;

としていたので、同じかなと思いまして、上記を全て使用せず、
単純にURLの?以降にパラメータを明示的に記述しています。
Luien
投稿日時: 2009-5-26 22:46
やや お馴染みさん
登録日: 2008-8-8
居住地: 神奈川
投稿: 9
Re: URLLoaderのPOST指定
試してないので見当違いかもしれませんが、API リファレンスの URLRequest の method プロパティの注意書きに、

正しいメソッドが使用されるように、ダミーの body を必ず含めることをお勧めします。

と書いてあるので、メッセージボディを含めるように実装するのが正なのではないかと思いました。

要は、

var req:URLRequest = new URLRequest(url);
req.method = URLRequestMethod.POST;
var params:URLVariables = new URLVariables();
params.param = "dummy";
req.data = params;

のようにする必要があるのではないでしょうか。
bobo
投稿日時: 2009-5-26 23:45
ご主人様
登録日: 2008-10-28
居住地:
投稿: 235
Re: URLLoaderのPOST指定
ありがとうございます。

URLにパラメータを直接繋げないで、
var params:URLVariables = new URLVariables();
params.param = "dummy";
req.data = params;

ご指摘の通りにいたしましたが、bodyタグが必要と言うのは、<mx:body><mx:Form></mx:Form></mx:body>が明示的に記述されていなければいけないと言う事でしょうか??

ご助言ありがとうございます。
Luien
投稿日時: 2009-5-27 0:10
やや お馴染みさん
登録日: 2008-8-8
居住地: 神奈川
投稿: 9
Re: URLLoaderのPOST指定
ボディタグが必要なのではありません。
POST のメッセージボディが必要なのだと思います。

詳しくは「POST メッセージボディ」あたりでぐぐってみてください。
Odakaz
投稿日時: 2009-5-27 4:47
ご主人様
登録日: 2008-3-11
居住地: リアル:神奈川県/バーチャル:ウィンダス
投稿: 358
Re: URLLoaderのPOST指定
Luienさんの説が正しいように思います。

注意:Flash Player で実行されているときに、参照されるフォームに本文がない場合、Flash Player では自動的に GET 操作が使用されます。
これは、メソッドがURLRequestMethod.POSTに設定されている場合でも同じです。このため、正しいメソッドが使用されるように、ダミーの body を必ず含めることをお勧めします。

ということなので。


引用:
http:/hogehoge.com?param=1111¶m2=22222


これはまさにクエリストリングをくっつけたGETリクエストですね。

追記:
ローカルのApacheで試してみました。
以下のようなコードの場合、アクセスログにはバッチリ「GET」のリクエストが記録されました。

var getLoader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("http://127.0.0.1/index.html?param1=11111");
req.method = URLRequestMethod.POST;
getLoader.load(req);


----------------

bobo
投稿日時: 2009-5-27 15:19
ご主人様
登録日: 2008-10-28
居住地:
投稿: 235
Re: URLLoaderのPOST指定
ありがとうございます。

必ず、ダミーのプロパティを持たせる必要があるんですね。
サーバで確認いたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を