AS3使用HTTPService类访问需要HTTP Basic Authentication认证的URL

在使用API的时候,如嘀咕、Twitter、饭否的API,会需要使用用户名和密码登录,一般都是使用HTTP Basic Authentication认证,使用HTTPService类访问这种URL时,需要设置headers,用户名和密码的格式为“username:password”,并且需要Basic64加密,具体代码如下。

import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.utils.Base64Encoder;
import mx.rpc.http.HTTPService;
URLRequestDefaults.authenticate = false;//设默认为false,否则用户较验错误时会弹出验证框

private var result:XML;
private function initApp():void
{
	var base64enc:Base64Encoder = new Base64Encoder;
	base64enc.encode("user:password"); //用户名和密码需要Base64编码
	var user:String = base64enc.toString();

	var http:HTTPService = new HTTPService;
	http.addEventListener(ResultEvent.RESULT,resultHandler);//监听返回事件
	http.addEventListener(FaultEvent.FAULT,faultHandler);     //监听失败事件
	http.resultFormat = "e4x";//返回格式
	http.url = "http://api.digu.com/statuses/friends_timeline.xml"; 以嘀咕网的API为列
	http.headers = {"Authorization":"Basic " + user};
	http.send();
}
private function resultHandler(e:ResultEvent):void
{
	result = XML(e.result);
	test.dataProvider = result.status;//绑定数据
}
private function faultHandler(e:ResultEvent):void
{
	//处理失败
}

发表评论

Your email is never shared. Required fields are marked *

*
*