我们知道有一些网站是铜鼓偶http的basic认证来进行认证的。比如 api.fanhou.com
在air beta2的时候,搜集到了一个为饭否做的air客户端,可以正常运行。但是当昨天我升级到了beta3后,却不能正常运行。错误如下:
urlR.setLoginCredentials(loginName,loginPass); 找不到该方法。
经查询新的doc文档知道的确升级后,去掉了该方法。那摆在面前的问题是该如何找到新的解决方法呢,于是就网上搜了一些关于http的认证的原理,如下:
Basic认证是HTTP中规定最早的也是最兼容的方案,遗憾的是也是最不安全的一个方案,因为它以明码传送用户名和 密码。它要求一个UsernamePasswordCredentials实例,可以指定服务器端的访问空间或采用默认的登录信息。
可是接下来该怎么做了,是不是air提供了新的api来替换该方法呢。于是我在api中找到了URLRequestDefaults这个类里面有个静态方法
setLoginCredentialsForHost | () |
于是尝试把出错的方法修改为:
URLRequestDefaults.setLoginCredentialsForHost("api.fanfou.com",loginName,loginPass);
编译通过,运行正常。