代码之家  ›  专栏  ›  技术社区  ›  steph45

使用AS3将数据发送到JSON

  •  0
  • steph45  · 技术社区  · 7 年前

    我已经要求我的客户分享他的数据库登录名和密码,但他不能让我完全访问他的数据库(我想是出于安全原因)。 他告诉我使用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返回此错误:“缺少观察者名称”

    以及“ trace (urlvars) “输出:

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

    所以我认为问题来自于这个特殊的角色或类似的东西(如果你可以的话) observer_name “结果依据” observer%5Fname “我们可以看到很多%5”)

    1 回复  |  直到 7 年前
        1
  •  2
  •   Organis    7 年前

    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请求发送。