2011-12-15 93 views
2

我如何可以访问AS3受密码保护的web服务(使用Flash IDE中编译,所以不是Flex应用程序)访问受密码保护的web服务

我试着打电话只是它直似http://username:[email protected],它被拒绝。密码我只是用一个网站转换为Base64:

使用该

var authHeader:URLRequestHeader = new URLRequestHeader("Authorization","Basic " + credentials); 
//add the header to request 
request.requestHeaders.push(authHeader); 

其中“证书”是用户名也试过。

这似乎并不奏效。没有看到报头在包观察器中发送。

我错过了什么?

+0

前,而我的其他问题我问过这个问题,你可能会发现这个有用: http://stackoverflow.com/questions/7752821/闪光不支持用户名密码在一个网址是什么,我的替代品 请参阅:http://stackoverflow.com/questions/509219/flex-3-how-to-support -http-认证的URLRequest – Hawks 2011-12-16 11:13:15

回答

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 {}