2017-09-15 18 views
2

서버에 JSON을 게시하려고하지만 코드가 작동하지 않습니다. 내가 Actionscripts 3 JSON을 게시하는 몇 가지 예제를 발견하지만 코드에서 콘텐츠 형식을 정의해야합니다. 나는 여기에 내 테스트 코드를 게시한다.Actionscripts 3 콘텐츠 헤더가있는 POST 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()

편집 :

,721,303,210

OUTPUT : openHandler : progressHandler로드 [= 2 이벤트 TYPE = "열기"거품 = 거짓 거짓 = 캔슬의 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 : 이벤트 타입 = "열기"거품 = 거짓 거짓 = 캔슬의 EventPhase = 2] progressHandler로드 44 총 44

오류 URL 'https://api.thinger.io/v2/users/ ***

httpStatusHandler 이벤트 개폐 : [이 HTTPStatusEvent TYPE = "httpStatus"거품 = 거짓 캔슬 = 거짓의 EventPhase = 상태 2 = 400 리디렉션 = 거짓 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는 실제로 이름/값 쌍을 구성하기위한 것으로, JSON을 보내려는 경우 데이터 속성을 직접 설정하십시오 :

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

답변을 주셔서 감사합니다. EDIT 섹션과 비슷한 코드가 변경되었지만 오류가 발생했습니다. 내 코드가 바뀌 었습니까? –

+0

어떤 오류가 발생 했나요? 귀하의 문제에 대한 정보를 제공하지 않았습니다 – Michael

+0

내 새로운 코드가 사실입니까? EDIT 섹션 아래에서 새로운 오류를 볼 수 있습니다. –