如何从AS3访问受密码保护的Web服务(使用flash ide编译,因此不是flex应用程序)
我试着像http://username:password@webserviceurl.co
一样直接调用它并被拒绝。
也尝试使用此
var authHeader:URLRequestHeader = new URLRequestHeader("Authorization","Basic " + credentials);
//add the header to request
request.requestHeaders.push(authHeader);
其中“Credentials”是用户名:我刚刚使用网站转换为base64的密码。
这似乎也不起作用。没有看到标头在数据包观察器中发送。
我错过了什么吗?
答案 0 :(得分:0)
尝试类似:(未经测试的代码)
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat;
attemptLogin("dude","mypassword");
function attemptLogin(username:String, pass:String):void {
var req:URLRequest new URLRequest("https://yoursite.com");
req.method = URLRequestMethod.POST;
req.data = "username=" + username + "&password=" + pass;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, completeFun);
loader.addEventListener(IOErrorEvent.IO_ERROR, IOErrorFun);
loader.load(request);
}
function completeFun(evt:Event):void { // Check server response (using evt.target.data)}
function IOErrorFun(evt:IOErrorEvent):void {}