我想发布JSON到服务器,但代码不工作。我发现了一些使用Actionscripts 3发布JSON的例子,但我需要在代码中定义内容类型。我在这里发布我的测试代码。Actionscripts 3 POST JSON与内容头
我测试了Firefox + RESTClient中的url + header + body并且他们工作。 [1] 我敢肯定,网址是真实的,而在另一个地方工作,但在这里,我遇到错误 “错误打开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()
在flash.net::URLVariables()
在ATN_fla :: MainTimeline/ATN ()
在ATN_fla :: MainTimeline /帧1()
编辑:
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:[事件类型= “开放” 气泡=假或取消=假的EventPhase = 2] progressHandler加载:44总计:44
编辑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类型= “则httpStatus” 气泡=假或取消=假的EventPhase = 2个状态= 400重定向=假responseURL =空]
事件。ioErrorHandler:[IOErrorEvent type =“ioError”bubbles = false cancelable = false eventPhase = 2 text =“错误#2032:流错误。 URL:https://api.thinger.io/v2/users/ ***“]
'错误#2032:流错误。URL:https://api.thinger.io/v2/users/***'确定URL找不到(URL不存在) (2)** https://api.thinger.io/**应该是有效的URL吗?我看到一个_“404 Not Found”_,所以像'v2'和'users'这样的文件夹怎么存在? –
网址正常。我测试了它在Firefox的RESTClient。在这里我删除了一部分URL。 –
我更改了JASON数据,以前的错误消失了。现在出现新的错误。 –