【发布时间】:2018-02-24 11:56:13
【问题描述】:
我正在尝试将 JSON 发布到服务器,但代码不起作用。我找到了一些使用 Actionscripts 3 发布 JSON 的示例,但我需要在代码中定义内容类型。我在这里发布我的测试代码。
我在 Firefox RESTClient 中测试了 url+header+body 并且它们工作正常。 [![在此处输入图像描述][1]][1] 我确定 URL 是真实的并且在其他地方工作,但在这里我收到错误“错误打开 URL”
网址:“https://api.thinger.io/v2/users/***”
内容标题:“应用程序/json”
正文:{"in":true}
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();
错误:
错误:错误 #2101:传递给 URLVariables.decode() 的字符串必须是 包含名称/值对的 URL 编码查询字符串。
在错误$/throwError()
在 flash.net::URLVariables/decode()
在 flash.net::URLVariables()
在 ATN_fla::MainTimeline/ATN()
在 ATN_fla::MainTimeline/frame1()
编辑:
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.");
}
}
输出:
openHandler: [Event type="open" bubbles=false cancelable=false 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.");
}
}
输出 2:
openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2] progressHandler 加载:44 总计:44
打开网址“https://api.thinger.io/v2/users/***”时出错
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false 可取消=假 eventPhase=2 状态=400 重定向=假 responseURL=null]
ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: https://api.thinger.io/v2/users/***"]
【问题讨论】:
-
那个
Error #2032: Stream Error. URL: https://api.thinger.io/v2/users/***告诉你找不到URL(URL不存在)。 (2) api.thinger.io 应该是有效的 URL 吗?我看到一个“404 Not Found”,那么像v2和users这样的文件夹怎么会存在呢? -
网址工作正常。我在 Firefox RESTClient 中对其进行了测试。这里我删除了 URL 的一部分。
-
我更改了 JASON 数据,之前的错误消失了。现在出现新的错误。
标签: actionscript-3 flash air animate-cc