2011-07-30 4 views
2

Flash Builder 4のData Centric Development機能を使用してHTTPServiceを作成しました。何らかの原因で、HTTP GETリクエストのリクエストヘッダーを設定できません。 mx.rpc.http.Operationのヘッダオブジェクトを設定しようとしました。しかし、それは動作していないようです。パケットスニファーは、リクエストヘッダーが変更されていないことを示します。例えばHTTPServiceWrapperでRequestHeadersを設定できません(actionscript 3)

がここgettourサービスの一部です:

public class GetTourService extends _Super_GetTourService 
    { 
    /** 
    * Override super.init() to provide any initialization customization if needed. 
    */ 
    protected override function preInitializeService():void 
    { 
     super.preInitializeService(); 
     // Initialization customization goes here 

     var header:URLRequestHeader = new URLRequestHeader("Accept", "application/json"); 
     var headers:Array = new Array(); 
     headers.push(header); 

     var o:Object = this._serviceControl.getOperation("gettour"); 
     var operation:Operation = o as Operation; 
     operation.headers = headers; 
    } 
} 

ただし、パケットスニファは、 ":Rの\ nを\ /を受け入れる" ことをAcceptヘッダーを示しています。 AIRでは、デフォルトのAccept値の長いリストで同様の問題が発生し、Accept値を "application/json"に設定できません。私は何が欠けていますか?

ご迷惑をおかけして申し訳ありません。ありがとう!

EDITED:今朝の回答が見つかりました。代わりに

headers.push(header);

Iは、[ "受け入れ"] = "/アプリケーション/ JSON"

ヘッダを使用します。

これは機能しました。

+0

を私が持っている '操作=新しいmx.rpc.http.Operation(NULL、 "XXX");' 'operation.headers = {受け入れ:「アプリケーション/ JSONを"}'、しかし、それは動作しません、任意のアイデア? Flash Builder 4.5でデータグリッドを使用しています – ryenus

答えて

0

これはthe documentationが少し曖昧なので、私は推測しています。ドキュメントによれば、headersはカスタムヘッダーのオブジェクトなので、インデックス付きの配列を渡すことはおそらくうまくいかないでしょう。代わりに定義されたオブジェクトを渡して試してみてください。私の場合は

operation.headers = {Accept:"application/json"}; 
関連する問題