Запрос 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 вопросе.