0

カバー アート アーカイブ API を使用しようとしています。カバー アート アーカイブ

var request:URLRequest = new URLRequest();
request.url = "http://coverartarchive.org/release/76df3287-6cda-33eb-8e9a-044b5e15ffdd/";
request.method = URLRequestMethod.GET;

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, loaderComplete);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

loader.load(request);

function loaderComplete(evt:Event):void {
    trace("Load Succcsed");
}

function ioErrorHandler(evt:IOErrorEvent):void {
    trace("io: " + evt + "\n");
}

function httpStatusHandler(evt:HTTPStatusEvent):void {
    trace("status: " + evt + "\n");
} 

しかし、私が得るのは次のとおりです。

ステータス: [HTTPStatusEvent type="httpStatus" bubble=false cancelable=false eventPhase=2 status=0 responseURL=null]

io: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="エラー #2032: ストリーム エラー。 URL: http://coverartarchive.org/release/76df3287-6cda-33eb-8e9a-044b5e15ffdd/ "]

誰が私が間違っているのか教えてもらえますか?

どうも

編集 1: 追加: reqest.requestHeaders = new Array(new URLRequestHeader("accept", "application/json")); まだいけない…

4

2 に答える 2

1

私はあなたが何か悪いことをしているとは思わない。307 TEMPORARY REDIRECTHTTPリクエストがステータスで返されるようです:

$ curl -v http://coverartarchive.org/release/76df3287-6cda-33eb-8e9a-044b5e15ffdd/
* About to connect() to coverartarchive.org port 80 (#0)
*   Trying 72.29.166.157... connected
* Connected to coverartarchive.org (72.29.166.157) port 80 (#0)
> GET /release/76df3287-6cda-33eb-8e9a-044b5e15ffdd/ HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: coverartarchive.org
> Accept: */*
> 
< HTTP/1.1 307 TEMPORARY REDIRECT
< Date: Sun, 20 Jan 2013 21:09:02 GMT
< Content-Type: text/plain; charset=utf-8
< Connection: keep-alive
< Keep-Alive: timeout=20
< Content-Length: 86
< Location: http://archive.org/download/mbid-76df3287-6cda-33eb-8e9a-044b5e15ffdd/index.json
< Access-Control-Allow-Origin: *
< Server: CherryPy/3.1.2 WSGI Server
< 
See: http://archive.org/download/mbid-76df3287-6cda-33eb-8e9a-044b5e15ffdd/index.json
* Connection #0 to host coverartarchive.org left intact
* Closing connection #0

AFAIK、FlashURLLoader/URLRequestはリダイレクトを処理できません; Socket私が見る唯一の解決策は、クラスを使用して自分でHTTPリクエストを発行し、Location自分で取得することです。明らかに誰かがすでにそれを試しました

于 2013-01-20T21:19:33.083 に答える
0

Antoine の回答に加えて、AS3 URL ローダーはリダイレクトをたどることができます。

loader.followRedirects = true;

詳細については、adobes のドキュメントを参照してください。

于 2015-02-13T22:40:05.023 に答える