我正在尝试将数据发布到我的AIR for Android应用中的外部网址以登录用户。它在我的电脑上的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 );
}
答案 0 :(得分:0)
好吧,我终于成功了......
我从ide中创建的两个文本字段中获取了用户名和密码。
用户名文本字段设置为多行,这在联机或调试版中没有引起任何问题,但在我的Android设备上的文本字段中添加了换行符,导致我的api返回400.
将其更改为单行文本字段并解决问题。
疯狂:)