2016-09-07 9 views
0

クライアントのサプライヤからデータフィードを取得しています。
XMLとJSONの両方でフィードを取得できますが、デフォルトはXMLです。 JSONを取得するには、ヘッダを設定する必要があります受け入れる:application/jsonを削除してを受け入れます:application/xml header
私は自分のコードでヘッダを設定したり削除したりしていません。
通常のURLLoaderを使用してフィードを読み込みます。FlashDevelopがXMLを受け取り、Flash ProがJSONを受信

ブラウザでフィードURLに移動すると、のXMLが表示されます。
FlashDevelopでコードを実行すると、のXMLが返されます。
Flash Proで全く同じコードを実行すると、JSONと表示されます。

Flash Proで何が起こっているのでしょうか?変更可能な隠し設定?
URLRequest.methodは影響ありません。デバッグモードかどうかは影響ありません。
私は踏み鳴らしています。

---------私が試したコード------------

var header:URLRequestHeader = new URLRequestHeader("Accept", "application/xml"); 
var headers:Array = []; 
headers.push(header); 
urlReq.requestHeaders = headers; 
urlReq.method = URLRequestMethod.POST; 

---------全負荷コード--- --------

_urlLoader.addEventListener(Event.COMPLETE, validateFeedLoaded); 
_urlLoader.addEventListener(IOErrorEvent.IO_ERROR, handleFeedIOerror); 
_urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleFeedSecError); 
var urlReq:URLRequest = new URLRequest(_feedUrl); 
urlReq.requestHeaders = [new URLRequestHeader("Accept", "application/json")]; 
_urlLoader.load(urlReq); 
+0

すべての基本的なデバッグが完了しました。さまざまなクライアントが送信するリクエストのヘッダーを盗聴するのと同じですか? –

+0

この段階ではクライアントは関与していません。このデータフィードはまだ作成しています。しかし、もし私が私のコードでurlrequest.requestHeadersをチェックすれば何も得られません。 – Poppe76

+1

もちろん、彼らは関わっている、あなたは3つの異なるクライアントが異なる結果を受け取る理由を尋ねている。 @Marc Bが示唆しているように、HTTP通信を監視して、要求が異なるかどうかを確認します。 – null

答えて

1

異なるクライアント/アプリケーションのデフォルト値が異なります。フラッシュ/エアランタイムの異なるバージョンは、受け入れタイプに対して異なるデフォルトを持つことがあります。

あなたは一貫性が必要な場合は、明示的にリクエストに受け入れるタイプを設定する必要があります。

urlrequest.requestHeaders = [new URLRequestHeader("Accept", "application/json")]; 

これはあなたが使用しているランタイムのどんなバージョンに戻って、両方のIDEの中にJSONを取得することを確認する必要があります。

+0

FlashDevelopで動作しますが、FlashDevelopではヘッダをJSONまたはXMLに設定できますが、Flash Proでは完全に動作します。コードで設定されたヘッダは全く影響を与えません。 – Poppe76

関連する問題