使用 AS3 将数据发送到 JSON

Sending data to a JSON with AS3

我已经要求我的客户分享他的数据库登录名和密码,但他不能给我完全访问他的数据库的权限(我想是安全原因)。 他告诉我使用 REST/JSON 服务,该服务允许通过此 url post 数据,并使用特定密钥让他识别来自我的应用程序的所有数据。

这是我所做的:

var urlRequest:URLRequest = new URLRequest("the_url_using JSON service");
urlRequest.method = URLRequestMethod.POST;

 var urlvars: URLVariables = new URLVariables;
urlvars.observer_name = "Test Coco";
urlvars.observation_number = "5433";

trace("urlvars = "+urlvars);

urlRequest.data = urlvars;

var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.load(urlRequest);

它正在发送数据,但数据格式似乎不正确..

urlreturns这个错误:"Observer name is Missing"

而“trace (urlvars)”输出:

urlvars = observer%5Fname=Test%20Coco&observation%5Fnumber=5433

所以我认为问题出在特殊字符或类似的东西(因为你可以通过“observer%5Fname”得到“observer_name”结果,我们可以看到很多 %5”)

知道如何解决这个问题吗?

JSON 字符串是通用对象的字符串表示形式。基本上你去:

var anObject:Object =
{
    "observer_name": "Test Coco",
    "observation_number": 5433
};

或者你可以构建它

var anObject:Object = new Object;

anObject['observer_name'] = "Test Coco";
anObject['observation_number'] = 5433;

然后将其转换为 String 并附加到请求

var jsonString:String = JSON.stringify(anObject);

urlRequest.method = URLRequestMethod.POST;
urlRequest.data = jsonString;

了解更多信息:https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/JSON.html

请记住,我不知道您的 REST 服务器的具体情况,上面的代码 可能 无法正常工作。我只解释如何将 JSON 字符串作为 POST 请求发送。