2017-09-15 13 views
2

JSONをサーバに投稿しようとしていますが、コードは機能しません。私はActionscripts 3でJSONを投稿するいくつかの例を見つけましたが、コードでコンテンツタイプを定義する必要があります。私はここに私のテストコードを掲載する。Actionscripts 3コンテンツJSONとコンテンツヘッダ

私はfirefox RESTClientでurl + header + bodyをテストしています。 [1] 私は確信してURLが真と別の場所で作業しているが、ここにいる私のエラー "エラー開くURL"

URLました[[]ここに画像の説明を入力し、[1]!]:」https://api.thinger.io/v2/users/ *** "

コンテンツヘッダー: "アプリケーション/ JSON"

ボディ:{" で ":真}

import flash.display.Sprite; 
import flash.events.*; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.net.URLRequestHeader; 
import flash.net.URLRequestMethod; 
import flash.net.URLVariables; 


var loader: URLLoader; 

function ATN() { 
    loader = new URLLoader(); 
    configureListeners(loader); 

    var header: URLRequestHeader = new URLRequestHeader("Accept", "application/json"); 
    var request: URLRequest = new URLRequest("https://api.thinger.io/v2/users/***"); 
    request.data = new URLVariables("in:true"); 
    request.method = URLRequestMethod.POST; 
    request.requestHeaders.push(header); 
    try { 
     loader.load(request); 
    } catch (error: Error) { 
     trace("Unable to load requested document."); 
    } 

} 
function configureListeners(dispatcher: IEventDispatcher): void { 
    dispatcher.addEventListener(Event.COMPLETE, completeHandler); 
    dispatcher.addEventListener(Event.OPEN, openHandler); 
    dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
    dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
    dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); 
    dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
} 

function completeHandler(event: Event): void { 
    var loader: URLLoader = URLLoader(event.target); 
    trace("completeHandler: " + loader.data); 
} 

function openHandler(event: Event): void { 
    trace("openHandler: " + event); 
} 

function progressHandler(event: ProgressEvent): void { 
    trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); 
} 

function securityErrorHandler(event: SecurityErrorEvent): void { 
    trace("securityErrorHandler: " + event); 
} 

function httpStatusHandler(event: HTTPStatusEvent): void { 
    trace("httpStatusHandler: " + event); 
} 

function ioErrorHandler(event: IOErrorEvent): void { 
    trace("ioErrorHandler: " + event); 
} 

ATN(); 

ERROR:

のErrまたは:エラー#2101:URLVariables.decode()に渡される文字列は、名前と値のペアを含むURLエンコードされたクエリ文字列でなければなりません。エラー$/throwError()flash.net::URLVariables/decode()で

ATN_fla :: MainTimeline/ATNでflash.net::URLVariables()

()ATN_flaで

:: MainTimeline /フレーム1()

EDIT:

function ATN() { 
    loader = new URLLoader(); 
    configureListeners(loader); 

    var header: URLRequestHeader = new URLRequestHeader("Accept", "application/json"); 
    var request: URLRequest = new URLRequest("https://api.thinger.io/v2/users/***"); 
    request.data = new URLVariables(); 
    var postData: Object = {"in": true}; 
    request.data = JSON.stringify(postData); 
    request.method = URLRequestMethod.POST; 
    request.requestHeaders.push(header); 
    try { 
     loader.load(request); 
    } catch (error: Error) { 
     trace("Unable to load requested document."); 
    } 

} 

OUTPUT: openHandler: progressHandlerロード[= 2イベント・タイプ= "オープン" 気泡= FALSE FALSE =キャンセルeventPhase]:44合計:44

EDIT 2:

function ATN() { 
    loader = new URLLoader(); 
    configureListeners(loader); 

    var header: URLRequestHeader = new URLRequestHeader("Accept", "application/json"); 
    var request: URLRequest = new URLRequest("https://api.thinger.io/v2/users/***"); 
    var postData: Object = {"in": true}; 
    request.data = JSON.stringify(postData); 
    request.method = URLRequestMethod.POST; 
    request.requestHeaders.push(header); 
    try { 
     loader.load(request); 
    } catch (error: Error) { 
     trace("Unable to load requested document."); 
    } 

} 

OUTPUT 2 :

openHandler:[イベントタイプ= "オープン" 気泡= FALSE FALSE =キャンセルeventPhase = 2] progressHandlerがロード:44合計:44

エラーURL 'https://api.thinger.io/v2/users/ ***'

httpStatusHandlerイベントオープニング:[によってHTTPStatusEventタイプ= "はhttpStatus" 泡= falseを解約= falseのeventPhase = 2つの状態= 400リダイレクト= falseをresponseURL = NULL]

ioErrorHandler:[IOErrorEventをtype = "ioError" bubbles = false cancelable = false eventPhase = 2 text = "エラー#2032:ストリームエラー。 URL:https://api.thinger.io/v2/users/ *** "]

+0

'というエラー#2032:ストリームエラーURL:https://api.thinger.io/v2/users/***'tellsあなたURLが見つからなかったことを(URLは存在しません) (2)** https://api.thinger.io/**は有効なURLですか?_ "404 Not Found" _と表示されるので、そこに 'v2'や' users'のようなフォルダが存在するのでしょうか? –

+0

URLは正常に動作します。私はfirefox RESTClientでテストしました。ここで私はURLの一部を削除しました。 –

+0

JASONのデータを変更し、以前のエラーが消えました。新しいエラーが表示されます。 –

答えて

0

URLVariablesのコンストラクタに提供している文字列を解析中にエラーが発生しましたURLVariablesは本当に名前と値のペアを作成するためのものです。 :

var postData:Object = { "in": true }; 
request.data = JSON.stringify(postData); 
+0

答えをいただきありがとうございます。私はEDITセクションと同様のコードを変更しましたが、エラーが発生しました。私のコードは本当ですか? –

+0

どのようなエラーが発生しましたか?あなたはあなたの問題に関する情報を提供していません – Michael

+0

新しいコードは本当ですか? EDITセクションの下に新しいエラーが表示されます。 –