flex 实现HTTP请求的三种方式

public function SocketHttpTest():void{
sock=new Socket();
sock.addEventListener(Event.CONNECT,_onSktConnected);
sock.addEventListener(ProgressEvent.SOCKET_DATA,_onSktData);
sock.addEventListener(IOErrorEvent.IO_ERROR,IOErrorHandler);
sock.connect(host,port);
}

public function IOErrorHandler(e:Event):void{
trace("IO Error");
trace(e.toString());
}

public function _onSktConnected(e:Event):void{
trace("connected....");
SocketHttpTestSend();
}

public function _onSktData(e:Event):void{
trace("IO data");
var str:String=(e.target as Socket).readMultiByte((e.target as Socket).bytesAvailable,"UTF-8");
trace(str);
trace(str.substring(str.indexOf("\r\n\r\n")+"\r\n\r\n".length));
sock.close();
init();
}

public function SocketHttpTestSend():void{
var header:String="GET /com.broadsoft.xsi-actions/v1.0/user/nionUser1@xdp.broadsoft.com/directories/Enterprise HTTP/1.1\r\n";
// var header:String="GET /com.broadsoft.xsi-actions/v2.0/user/nionUser1@xdp.broadsoft.com/profile HTTP/1.1\r\n";
header+="Accept:*/*\r\n";
header+="Accept-Language: en-us\r\n";
header+="Accept-Encoding: gzip, deflate\r\n";
header+="Host:"+host+"\r\n";
header+="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)\r\n";
header+="Cache-Control: no-cache\r\n";
header+="Connection: Keep-Alive\r\n";
header+="Authorization: Basic "+getEncodedAuthorization()+"\r\n\r\n";
var bta:ByteArray=new ByteArray();
bta.writeUTF(header);
sock.writeUTFBytes(header);
sock.flush();
}

public function HTTPServiceTest():void{
var service:HTTPService=new HTTPService();
service.url="http://xsp1.xdp.broadsoft.com:80/com.broadsoft.xsi-actions/v2.0/user/nionUser1@xdp.broadsoft.com/profile";
service.method = "GET";
service.headers["Authorization"]="Basic "+getEncodedAuthorization();
service.addEventListener("result", httpResult);
service.addEventListener("fault", httpFault);
service.send();
}

public function URLLoaderTest():void{
var loader:URLLoader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE,test);

var request:URLRequest=new URLRequest("");
request.method=URLRequestMethod.GET;

var header:URLRequestHeader=new URLRequestHeader("Authorization","Basic "+getEncodedAuthorization());
request.requestHeaders.push(header);
trace(header.value);
loader.load(request);
}

public function getEncodedAuthorization():String{
var encoder:Base64Encoder=new Base64Encoder();
encoder.insertNewLines=false;
encoder.encode("user:pass");

return encoder.toString();
}

public function httpResult(event:ResultEvent):void {
var faultstring:String = event.message.body.toString();
// var faultstring:String = event.result.Profile.details.userId;
trace(faultstring);
}

public function httpFault(event:FaultEvent):void {
var faultstring:String = event.fault.faultString;
trace(faultstring);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值