2

我正在尝试将数据发布到我的 AIR for Android 应用程序中的外部 URL 以登录用户。它适用于我电脑上的 Flash 调试器,但不适用于我的 Android 设备。我为我的应用设置了 Internet 权限。我为 IO_ERROR 和 SECURITY_ERROR 设置了监听器,但它们都没有被触发。当我在设备上进行测试时,它只是挂在那里并且什么都不做,但它在调试播放器中工作正常!?!?

编辑:我已经搜索过答案,最接近的是:AS3 AIR URLLoader POST,它建议在我的请求中指定内容类型,但这并不能解决我的问题

编辑:当我将它上传到服务器并将 crossdomain.xml 添加到请求的站点时,它也可以工作。

public static function login(user:String, pass:String):void 
    { 
        username = user;
        var request:URLRequest = new URLRequest( "http://mysite.com/"+user+"/login.json" ); 
        request.method = URLRequestMethod.POST; 
        request.contentType = 'application/x-www-form-urlencoded';

        var variables:URLVariables = new URLVariables(); 
        variables.p = pass;             
        request.data = variables; 

        var requestor:URLLoader = new URLLoader(); 
        requestor.addEventListener( Event.COMPLETE, loginRequestComplete ); 
        requestor.addEventListener( IOErrorEvent.IO_ERROR, httpRequestError ); 
        requestor.addEventListener( SecurityErrorEvent.SECURITY_ERROR, httpRequestError ); 
        requestor.load( request ); 
    } 
4

1 回答 1

0

嗯,我终于成功了……

我从 ide 中创建的两个文本字段中获取我的用户名和密码。

用户名文本字段设置为多行,这在在线或调试器版本中没有问题,但在我的 android 设备上的文本字段中添加了换行符,导致我的 api 返回 400。

将其更改为单行文本字段并解决问题。

疯狂的 :)

于 2013-07-17T20:53:01.603 回答