0

我正在尝试在此处描述的 adobe AIR AS3 项目中使用美味的 api:https ://github.com/avos/delicious-api

特别是本页末尾描述的建议 api ( /v1/posts/suggest):https://github.com/avos/delicious-api/blob/master/api/posts.md

在调试模式下,应用程序会询问用户名和密码,并且即使在提供了有效的用户名和密码并且从不跟踪响应后也会继续询问。我不知道这里出了什么问题。下面是我的代码:

var request:URLRequest = new URLRequest("https://api.del.icio.us/v1/posts/suggest?red=api&url=http%3A%2F%2Fyahoo.com");
request.method = URLRequestMethod.POST;

//encoded string using as3 class at https://github.com/MoritzStefaner/revisit/blob/master/lib/com/hurlant/util/Base64.as
var encoded:String = Base64.encode("validusername:validpassword");
trace(encoded);
var credsHeader:URLRequestHeader = new URLRequestHeader("Authorization", "Basic " + encoded);
request.requestHeaders.push(credsHeader);
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, handleResults);
loader.load(request);

function handleResults(evt:Event):void
{
    var response:String = evt.target.data as String;
    trace("response:" + response);
}
4

1 回答 1

0

通过简要查看链接的 API,没有任何方法建议支持将身份验证信息作为 POST 正文的一部分发送(这是您的代码正在执行的操作)。因此,除非在其他地方记录,否则您使用的 API 不正确。看到 HTTP POST 与 QueryString 结合的情况也相当罕见(这也是您上面的代码所做的),所以这有点奇怪。

我认为 Delicious 只需要 HTTP 基本身份验证,这里的 SO 问题对此进行了介绍

于 2013-12-07T14:38:44.393 回答