我已经要求我的客户分享他的数据库登录名和密码,但他无法让我完全访问他的数据库(我认为是安全原因)。 他告诉我使用REST / JSON服务,该服务允许通过此URL发布数据,并使用特定的密钥来识别来自我的应用程序的所有数据。
这就是我的所作所为:
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);
它正在发送,因为它正在发送数据,但数据格式似乎不正确..
url返回此错误:" Observer name is Missing"
" trace (urlvars)
"输出:
urlvars = observer%5Fname=Test%20Coco&observation%5Fnumber=5433
所以我认为问题来自特殊角色或类似的东西(因为你可以" observer_name
"结果由" observer%5Fname
"和我们可以看到很多%5")
我知道如何解决这个问题?
答案 0 :(得分:2)
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;
然后将其转换为字符串并附加到请求
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请求发送。