Запрос API с Adobe AIR

Я пытаюсь потреблять вкусные API в Adobe AIR AS3 проекта, описанного здесь: https://github.com/avos/delicious-api

в частности, рекомендуем api (/v1/posts/ offer), описанный в конце этой страницы: 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);
}

1 ответ

Кратко рассмотрев связанный API, ни один из методов не предлагает поддержку аутентификационной информации, отправляемой как часть тела POST (что и делает ваш код). Так что, если это не задокументировано где-то еще, вы используете API неправильно. Также довольно редко можно увидеть HTTP POST в сочетании с QueryString (что опять же делает ваш код выше), так что это немного странно.

Я думаю, что Delicious просто нужна аутентификация HTTP Basic, которая описана здесь в SO вопросе.

Другие вопросы по тегам